neotoma 0.3.0 → 0.3.2

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 (1699) hide show
  1. package/README.md +9 -9
  2. package/dist/actions.js +2 -2
  3. package/dist/actions.js.map +1 -1
  4. package/dist/cli/bootstrap.js +0 -0
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +158 -5
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/crypto/auth.js +1 -1
  9. package/dist/crypto/auth.js.map +1 -1
  10. package/dist/mcp_ws_bridge.js +1 -1
  11. package/dist/mcp_ws_bridge.js.map +1 -1
  12. package/dist/server.js +2 -2
  13. package/dist/server.js.map +1 -1
  14. package/dist/services/field_converters.js +3 -3
  15. package/dist/services/field_converters.js.map +1 -1
  16. package/dist/services/field_validation.js +1 -1
  17. package/dist/services/field_validation.js.map +1 -1
  18. package/dist/services/mcp_auth.js +1 -1
  19. package/dist/services/mcp_auth.js.map +1 -1
  20. package/dist/services/mcp_oauth.js +1 -1
  21. package/dist/services/mcp_oauth.js.map +1 -1
  22. package/dist/services/parquet_reader.js +1 -1
  23. package/dist/services/parquet_reader.js.map +1 -1
  24. package/dist/services/public_key_registry.js +2 -2
  25. package/dist/services/public_key_registry.js.map +1 -1
  26. package/package.json +27 -7
  27. package/.claude/CLAUDE.md +0 -81
  28. package/.claude/rules/agent_constraints.md +0 -201
  29. package/.claude/rules/agent_instructions_sync_rules.md +0 -100
  30. package/.claude/rules/agent_test_execution.md +0 -358
  31. package/.claude/rules/autonomous_execution.md +0 -119
  32. package/.claude/rules/bug_fix_detection.md +0 -145
  33. package/.claude/rules/bug_learning.md +0 -154
  34. package/.claude/rules/checkpoint_management.md +0 -194
  35. package/.claude/rules/configuration_management.md +0 -159
  36. package/.claude/rules/content_style_enforcement.md +0 -141
  37. package/.claude/rules/dependency_installation.md +0 -148
  38. package/.claude/rules/document_loading_order.md +0 -197
  39. package/.claude/rules/documentation_rules.md +0 -169
  40. package/.claude/rules/downstream_doc_updates.md +0 -269
  41. package/.claude/rules/env_check.md +0 -55
  42. package/.claude/rules/environment_variables_1password.md +0 -315
  43. package/.claude/rules/environment_variables_env_file.md +0 -124
  44. package/.claude/rules/feature_unit_detection.md +0 -132
  45. package/.claude/rules/file_naming.md +0 -34
  46. package/.claude/rules/git_remote_sync.md +0 -242
  47. package/.claude/rules/instruction_documentation.md +0 -287
  48. package/.claude/rules/native_browser_debugging.md +0 -68
  49. package/.claude/rules/plan_execution_testing.md +0 -101
  50. package/.claude/rules/plan_format.md +0 -38
  51. package/.claude/rules/post_build_testing.md +0 -162
  52. package/.claude/rules/prefer_cli_tools.md +0 -233
  53. package/.claude/rules/readme_maintenance.md +0 -156
  54. package/.claude/rules/release_detection.md +0 -95
  55. package/.claude/rules/release_status_readme_update.md +0 -62
  56. package/.claude/rules/risk_management.md +0 -170
  57. package/.claude/rules/security.md +0 -168
  58. package/.claude/rules/social_media_conventions.md +0 -42
  59. package/.claude/rules/test_first_workflow.md +0 -344
  60. package/.claude/rules/worktree_env.md +0 -56
  61. package/.claude/settings.json +0 -5
  62. package/.claude/skills/commit.md +0 -762
  63. package/.claude/skills/create_feature_unit.md +0 -176
  64. package/.claude/skills/create_release.md +0 -428
  65. package/.claude/skills/fix_feature_bug.md +0 -93
  66. package/.claude/skills/pull.md +0 -314
  67. package/.claude/skills/setup_symlinks.md +0 -228
  68. package/.codex/config.toml +0 -92
  69. package/.cursor/commands/analyze.md +0 -574
  70. package/.cursor/commands/commit.md +0 -768
  71. package/.cursor/commands/create_feature_unit.md +0 -182
  72. package/.cursor/commands/create_prototype.md +0 -95
  73. package/.cursor/commands/create_release.md +0 -434
  74. package/.cursor/commands/create_rule.md +0 -296
  75. package/.cursor/commands/debug.md +0 -985
  76. package/.cursor/commands/final_review.md +0 -97
  77. package/.cursor/commands/fix_feature_bug.md +0 -99
  78. package/.cursor/commands/manage_error_debugging.md +0 -186
  79. package/.cursor/commands/migrate_plans.md +0 -499
  80. package/.cursor/commands/publish.md +0 -559
  81. package/.cursor/commands/pull.md +0 -320
  82. package/.cursor/commands/push.md +0 -259
  83. package/.cursor/commands/report.md +0 -1506
  84. package/.cursor/commands/report_error.md +0 -1505
  85. package/.cursor/commands/run_feature_workflow.md +0 -83
  86. package/.cursor/commands/setup_commands.md +0 -87
  87. package/.cursor/commands/setup_symlinks.md +0 -234
  88. package/.cursor/commands/sync_env_from_1password.md +0 -321
  89. package/.cursor/commands.json +0 -100
  90. package/.cursor/environment.json +0 -5
  91. package/.cursor/mcp.json.template +0 -16
  92. package/.cursor/plans/agent_skills_analysis_aac0f1b6.plan.md +0 -949
  93. package/.cursor/plans/agent_trust_framework_eb38ca7d.plan.md +0 -634
  94. package/.cursor/plans/all-storage-unstructured_provenance_df0b7a8f.plan.md +0 -112
  95. package/.cursor/plans/automated_error_debugging_cloud_agents.plan.md +0 -526
  96. package/.cursor/plans/automated_error_debugging_cursor_cli.plan.md +0 -599
  97. package/.cursor/plans/automated_error_debugging_localhost_clarified.plan.md +0 -510
  98. package/.cursor/plans/bug_report_and_contribution_client_guidance.plan.md +0 -143
  99. package/.cursor/plans/convert_1password_sync_to_mcp_343ca61c.plan.md +0 -282
  100. package/.cursor/plans/debug_pending_errors_command.plan.md +0 -531
  101. package/.cursor/plans/error_reporting_command_8868f27b.plan.md +0 -255
  102. package/.cursor/plans/mcp-cli-action-item-01-openapi-core.plan.md +0 -30
  103. package/.cursor/plans/mcp-cli-action-item-02-openapi-mcp-cli-mapping.plan.md +0 -18
  104. package/.cursor/plans/mcp-cli-action-item-03-cli-equivalent-logging.plan.md +0 -18
  105. package/.cursor/plans/mcp-cli-action-item-06-error-taxonomy.plan.md +0 -18
  106. package/.cursor/plans/mcp-cli-action-item-07-fixture-replay-graphs.plan.md +0 -18
  107. package/.cursor/plans/mcp-cli-action-item-08-cli-reference-executor.plan.md +0 -18
  108. package/.cursor/plans/mcp-cli-action-item-09-mcp-tools-atomic.plan.md +0 -18
  109. package/.cursor/plans/mcp-cli-action-item-10-canonical-walkthrough.plan.md +0 -18
  110. package/.cursor/plans/mcp-cli-action-item-11-fixtures-expected-outputs.plan.md +0 -18
  111. package/.cursor/plans/mcp-cli-action-item-12-failure-gallery.plan.md +0 -18
  112. package/.cursor/plans/mcp_source-path_documentation_5ce48609.plan.md +0 -83
  113. package/.cursor/plans/me_and_get_authenticated_user_response_updates.plan.md +0 -125
  114. package/.cursor/plans/multi-llm_provider_support_3fdeb361.plan.md +0 -120
  115. package/.cursor/plans/plan_migration_command_integrated.plan.md +0 -393
  116. package/.cursor/plans/schema_icon_enhancements_plan.md +0 -533
  117. package/.cursor/plans/site-react-tailwind-parity.plan.md +0 -82
  118. package/.cursor/plans/sources-first-ingestion-v8.plan.md +0 -0
  119. package/.cursor/plans/sources-first_ingestion_v10_baef2ba2.plan.md +0 -363
  120. package/.cursor/plans/test_coverage_gap_analysis_9cb70022.plan.md +0 -39
  121. package/.cursor/port_to_foundation_analysis.md +0 -217
  122. package/.cursor/rules/agent_constraints.mdc +0 -210
  123. package/.cursor/rules/autonomous_execution.mdc +0 -128
  124. package/.cursor/rules/configuration_management.mdc +0 -168
  125. package/.cursor/rules/cursor_rules_editing.mdc +0 -99
  126. package/.cursor/rules/cursor_rules_sync.mdc +0 -74
  127. package/.cursor/rules/cursor_rules_sync_requirement.mdc +0 -156
  128. package/.cursor/rules/developer_agent_instructions_sync_rules.mdc +0 -109
  129. package/.cursor/rules/document_loading_order.mdc +0 -206
  130. package/.cursor/rules/instruction_documentation.mdc +0 -296
  131. package/.cursor/rules/risk_management.mdc +0 -179
  132. package/.cursor/rules/security.mdc +0 -177
  133. package/.cursor/skipped_records/companies_skipped.json +0 -27
  134. package/.cursor/skipped_records/contacts_skipped.json +0 -23
  135. package/.cursor/skipped_records/goals_skipped.json +0 -7
  136. package/.cursor/skipped_records/people_skipped.json +0 -14
  137. package/.cursor/skipped_records/projects_skipped.json +0 -39
  138. package/.cursor/worktrees.json +0 -12
  139. package/.dockerignore +0 -9
  140. package/.env.example +0 -84
  141. package/.eslintrc.json +0 -11
  142. package/.github/workflows/deploy-pages-site.yml +0 -55
  143. package/.gitmodules +0 -12
  144. package/.husky/pre-commit +0 -42
  145. package/.mcp.json +0 -13
  146. package/.nvmrc +0 -1
  147. package/.prettierrc.json +0 -7
  148. package/.vscode/extensions.json +0 -5
  149. package/.vscode/settings.json +0 -47
  150. package/CONTRIBUTING.md +0 -23
  151. package/Dockerfile +0 -28
  152. package/SECURITY.md +0 -41
  153. package/components.json +0 -21
  154. package/cursor_rules_manifest.json +0 -28
  155. package/dist/__fixtures__/helpers.d.ts +0 -91
  156. package/dist/__fixtures__/helpers.d.ts.map +0 -1
  157. package/dist/__fixtures__/helpers.js +0 -384
  158. package/dist/__fixtures__/helpers.js.map +0 -1
  159. package/dist/__fixtures__/types.d.ts +0 -285
  160. package/dist/__fixtures__/types.d.ts.map +0 -1
  161. package/dist/__fixtures__/types.js +0 -7
  162. package/dist/__fixtures__/types.js.map +0 -1
  163. package/dist/__fixtures__/validation.d.ts +0 -45
  164. package/dist/__fixtures__/validation.d.ts.map +0 -1
  165. package/dist/__fixtures__/validation.js +0 -311
  166. package/dist/__fixtures__/validation.js.map +0 -1
  167. package/dist/config/plaid.d.ts +0 -21
  168. package/dist/config/plaid.d.ts.map +0 -1
  169. package/dist/config/plaid.js +0 -38
  170. package/dist/config/plaid.js.map +0 -1
  171. package/dist/events/event_emitter.d.ts +0 -24
  172. package/dist/events/event_emitter.d.ts.map +0 -1
  173. package/dist/events/event_emitter.js +0 -85
  174. package/dist/events/event_emitter.js.map +0 -1
  175. package/dist/events/event_log.d.ts +0 -23
  176. package/dist/events/event_log.d.ts.map +0 -1
  177. package/dist/events/event_log.js +0 -77
  178. package/dist/events/event_log.js.map +0 -1
  179. package/dist/events/event_schema.d.ts +0 -58
  180. package/dist/events/event_schema.d.ts.map +0 -1
  181. package/dist/events/event_schema.js +0 -43
  182. package/dist/events/event_schema.js.map +0 -1
  183. package/dist/events/event_validator.d.ts +0 -23
  184. package/dist/events/event_validator.d.ts.map +0 -1
  185. package/dist/events/event_validator.js +0 -90
  186. package/dist/events/event_validator.js.map +0 -1
  187. package/dist/events/index.d.ts +0 -9
  188. package/dist/events/index.d.ts.map +0 -1
  189. package/dist/events/index.js +0 -9
  190. package/dist/events/index.js.map +0 -1
  191. package/dist/events/replay.d.ts +0 -27
  192. package/dist/events/replay.d.ts.map +0 -1
  193. package/dist/events/replay.js +0 -62
  194. package/dist/events/replay.js.map +0 -1
  195. package/dist/hashing/hash_chain.d.ts +0 -31
  196. package/dist/hashing/hash_chain.d.ts.map +0 -1
  197. package/dist/hashing/hash_chain.js +0 -52
  198. package/dist/hashing/hash_chain.js.map +0 -1
  199. package/dist/integrations/plaid/client.d.ts +0 -53
  200. package/dist/integrations/plaid/client.d.ts.map +0 -1
  201. package/dist/integrations/plaid/client.js +0 -224
  202. package/dist/integrations/plaid/client.js.map +0 -1
  203. package/dist/integrations/plaid/normalizers.d.ts +0 -26
  204. package/dist/integrations/plaid/normalizers.d.ts.map +0 -1
  205. package/dist/integrations/plaid/normalizers.js +0 -166
  206. package/dist/integrations/plaid/normalizers.js.map +0 -1
  207. package/dist/integrations/providers/asana.d.ts +0 -9
  208. package/dist/integrations/providers/asana.d.ts.map +0 -1
  209. package/dist/integrations/providers/asana.js +0 -62
  210. package/dist/integrations/providers/asana.js.map +0 -1
  211. package/dist/integrations/providers/base.d.ts +0 -17
  212. package/dist/integrations/providers/base.d.ts.map +0 -1
  213. package/dist/integrations/providers/base.js +0 -64
  214. package/dist/integrations/providers/base.js.map +0 -1
  215. package/dist/integrations/providers/facebook.d.ts +0 -9
  216. package/dist/integrations/providers/facebook.d.ts.map +0 -1
  217. package/dist/integrations/providers/facebook.js +0 -58
  218. package/dist/integrations/providers/facebook.js.map +0 -1
  219. package/dist/integrations/providers/gmail.d.ts +0 -10
  220. package/dist/integrations/providers/gmail.d.ts.map +0 -1
  221. package/dist/integrations/providers/gmail.js +0 -67
  222. package/dist/integrations/providers/gmail.js.map +0 -1
  223. package/dist/integrations/providers/index.d.ts +0 -6
  224. package/dist/integrations/providers/index.d.ts.map +0 -1
  225. package/dist/integrations/providers/index.js +0 -25
  226. package/dist/integrations/providers/index.js.map +0 -1
  227. package/dist/integrations/providers/instagram.d.ts +0 -9
  228. package/dist/integrations/providers/instagram.d.ts.map +0 -1
  229. package/dist/integrations/providers/instagram.js +0 -47
  230. package/dist/integrations/providers/instagram.js.map +0 -1
  231. package/dist/integrations/providers/metadata.d.ts +0 -25
  232. package/dist/integrations/providers/metadata.d.ts.map +0 -1
  233. package/dist/integrations/providers/metadata.js +0 -407
  234. package/dist/integrations/providers/metadata.js.map +0 -1
  235. package/dist/integrations/providers/types.d.ts +0 -39
  236. package/dist/integrations/providers/types.d.ts.map +0 -1
  237. package/dist/integrations/providers/types.js +0 -2
  238. package/dist/integrations/providers/types.js.map +0 -1
  239. package/dist/integrations/providers/x.d.ts +0 -9
  240. package/dist/integrations/providers/x.d.ts.map +0 -1
  241. package/dist/integrations/providers/x.js +0 -78
  242. package/dist/integrations/providers/x.js.map +0 -1
  243. package/dist/reducers/record_reducer.d.ts +0 -25
  244. package/dist/reducers/record_reducer.d.ts.map +0 -1
  245. package/dist/reducers/record_reducer.js +0 -93
  246. package/dist/reducers/record_reducer.js.map +0 -1
  247. package/dist/reducers/reducer_registry.d.ts +0 -47
  248. package/dist/reducers/reducer_registry.d.ts.map +0 -1
  249. package/dist/reducers/reducer_registry.js +0 -82
  250. package/dist/reducers/reducer_registry.js.map +0 -1
  251. package/dist/repositories/db/event_repo.d.ts +0 -14
  252. package/dist/repositories/db/event_repo.d.ts.map +0 -1
  253. package/dist/repositories/db/event_repo.js +0 -67
  254. package/dist/repositories/db/event_repo.js.map +0 -1
  255. package/dist/repositories/db/state_repo.d.ts +0 -14
  256. package/dist/repositories/db/state_repo.d.ts.map +0 -1
  257. package/dist/repositories/db/state_repo.js +0 -61
  258. package/dist/repositories/db/state_repo.js.map +0 -1
  259. package/dist/repositories/file/event_repo.d.ts +0 -18
  260. package/dist/repositories/file/event_repo.d.ts.map +0 -1
  261. package/dist/repositories/file/event_repo.js +0 -148
  262. package/dist/repositories/file/event_repo.js.map +0 -1
  263. package/dist/repositories/file/state_repo.d.ts +0 -21
  264. package/dist/repositories/file/state_repo.d.ts.map +0 -1
  265. package/dist/repositories/file/state_repo.js +0 -89
  266. package/dist/repositories/file/state_repo.js.map +0 -1
  267. package/dist/repositories/sqlite/supabase_adapter.d.ts +0 -135
  268. package/dist/repositories/sqlite/supabase_adapter.d.ts.map +0 -1
  269. package/dist/repositories/sqlite/supabase_adapter.js +0 -810
  270. package/dist/repositories/sqlite/supabase_adapter.js.map +0 -1
  271. package/dist/services/connectors.d.ts +0 -89
  272. package/dist/services/connectors.d.ts.map +0 -1
  273. package/dist/services/connectors.js +0 -248
  274. package/dist/services/connectors.js.map +0 -1
  275. package/dist/services/event_generation.d.ts +0 -37
  276. package/dist/services/event_generation.d.ts.map +0 -1
  277. package/dist/services/event_generation.js +0 -236
  278. package/dist/services/event_generation.js.map +0 -1
  279. package/dist/services/extraction/rules.d.ts +0 -26
  280. package/dist/services/extraction/rules.d.ts.map +0 -1
  281. package/dist/services/extraction/rules.js +0 -691
  282. package/dist/services/extraction/rules.js.map +0 -1
  283. package/dist/services/file_analysis.d.ts +0 -38
  284. package/dist/services/file_analysis.d.ts.map +0 -1
  285. package/dist/services/file_analysis.js +0 -325
  286. package/dist/services/file_analysis.js.map +0 -1
  287. package/dist/services/graph_builder.d.ts +0 -51
  288. package/dist/services/graph_builder.d.ts.map +0 -1
  289. package/dist/services/graph_builder.js +0 -279
  290. package/dist/services/graph_builder.js.map +0 -1
  291. package/dist/services/importers.d.ts +0 -28
  292. package/dist/services/importers.d.ts.map +0 -1
  293. package/dist/services/importers.js +0 -174
  294. package/dist/services/importers.js.map +0 -1
  295. package/dist/services/observation_ingestion.d.ts +0 -26
  296. package/dist/services/observation_ingestion.d.ts.map +0 -1
  297. package/dist/services/observation_ingestion.js +0 -364
  298. package/dist/services/observation_ingestion.js.map +0 -1
  299. package/dist/services/payload_compiler.d.ts +0 -36
  300. package/dist/services/payload_compiler.d.ts.map +0 -1
  301. package/dist/services/payload_compiler.js +0 -121
  302. package/dist/services/payload_compiler.js.map +0 -1
  303. package/dist/services/payload_identity.d.ts +0 -35
  304. package/dist/services/payload_identity.d.ts.map +0 -1
  305. package/dist/services/payload_identity.js +0 -101
  306. package/dist/services/payload_identity.js.map +0 -1
  307. package/dist/services/payload_schema.d.ts +0 -104
  308. package/dist/services/payload_schema.d.ts.map +0 -1
  309. package/dist/services/payload_schema.js +0 -46
  310. package/dist/services/payload_schema.js.map +0 -1
  311. package/dist/services/plaid_sync.d.ts +0 -77
  312. package/dist/services/plaid_sync.d.ts.map +0 -1
  313. package/dist/services/plaid_sync.js +0 -273
  314. package/dist/services/plaid_sync.js.map +0 -1
  315. package/dist/services/record_comparison.d.ts +0 -29
  316. package/dist/services/record_comparison.d.ts.map +0 -1
  317. package/dist/services/record_comparison.js +0 -84
  318. package/dist/services/record_comparison.js.map +0 -1
  319. package/dist/services/records.d.ts +0 -31
  320. package/dist/services/records.d.ts.map +0 -1
  321. package/dist/services/records.js +0 -184
  322. package/dist/services/records.js.map +0 -1
  323. package/dist/services/search.d.ts +0 -15
  324. package/dist/services/search.d.ts.map +0 -1
  325. package/dist/services/search.js +0 -81
  326. package/dist/services/search.js.map +0 -1
  327. package/dist/services/summary.d.ts +0 -5
  328. package/dist/services/summary.d.ts.map +0 -1
  329. package/dist/services/summary.js +0 -118
  330. package/dist/services/summary.js.map +0 -1
  331. package/docs/NEOTOMA_MANIFEST.md +0 -152
  332. package/docs/api/rest_api.md +0 -466
  333. package/docs/architecture/agentic_portfolio_overview.md +0 -99
  334. package/docs/architecture/agentic_wallet_overview.md +0 -93
  335. package/docs/architecture/architectural_decisions.md +0 -462
  336. package/docs/architecture/architecture.md +0 -842
  337. package/docs/architecture/blockchain_readiness_assessment.md +0 -248
  338. package/docs/architecture/consistency.md +0 -539
  339. package/docs/architecture/conversational_ux_architecture.md +0 -240
  340. package/docs/architecture/determinism.md +0 -762
  341. package/docs/architecture/idempotence_pattern.md +0 -139
  342. package/docs/architecture/mcp_actions_assessment.md +0 -182
  343. package/docs/architecture/ner_vs_schema_first_extraction.md +0 -280
  344. package/docs/architecture/schema_expansion.md +0 -260
  345. package/docs/architecture/schema_handling.md +0 -209
  346. package/docs/architecture/source_material_model.md +0 -281
  347. package/docs/assets/neotoma_banner.png +0 -0
  348. package/docs/conventions/TEST_EXECUTION_IMPROVEMENTS.md +0 -205
  349. package/docs/conventions/always_on_rules_review.md +0 -66
  350. package/docs/conventions/code_conventions_implementation.md +0 -111
  351. package/docs/conventions/code_conventions_plan.md +0 -124
  352. package/docs/conventions/code_review_summary.md +0 -96
  353. package/docs/conventions/documentation_standards.md +0 -104
  354. package/docs/conventions/estimation_methodology.md +0 -146
  355. package/docs/conventions/file_naming_migration_status.md +0 -94
  356. package/docs/conventions/readme_generation_framework.md +0 -230
  357. package/docs/conventions/time_tracking_template.md +0 -60
  358. package/docs/conventions/writing_style_guide.md +0 -252
  359. package/docs/developer/agent_cli_configuration.md +0 -140
  360. package/docs/developer/agent_instructions_sync_rules.mdc +0 -97
  361. package/docs/developer/canonical_walkthrough.md +0 -137
  362. package/docs/developer/cli_agent_instructions.md +0 -141
  363. package/docs/developer/cli_overview.md +0 -207
  364. package/docs/developer/cli_reference.md +0 -518
  365. package/docs/developer/developer_preview_launch_checklist.md +0 -128
  366. package/docs/developer/developer_preview_storage.md +0 -35
  367. package/docs/developer/developer_release_manual_test_checklist.md +0 -209
  368. package/docs/developer/development_workflow.md +0 -308
  369. package/docs/developer/environment/CONNECTOR_SECRET_KEY_SETUP.md +0 -96
  370. package/docs/developer/environment/DEV_CONNECTOR_SECRET_KEY_EXPLANATION.md +0 -80
  371. package/docs/developer/environment/ENV_MAPPINGS_STATUS.md +0 -86
  372. package/docs/developer/environment/ENV_VAR_NAMING_STRATEGY.md +0 -145
  373. package/docs/developer/environment/MIGRATION_TO_SINGLE_VAR_NAMES.md +0 -89
  374. package/docs/developer/environment/QUICK_START_1PASSWORD.md +0 -126
  375. package/docs/developer/environment/README.md +0 -27
  376. package/docs/developer/environment/SETUP_ENV_MAPPINGS.md +0 -256
  377. package/docs/developer/environment_distinction_audit.md +0 -43
  378. package/docs/developer/fix_doc_inconsistencies_plan.md +0 -63
  379. package/docs/developer/getting_started.md +0 -100
  380. package/docs/developer/import_interpretation_debug.md +0 -69
  381. package/docs/developer/launchd_dev_servers.md +0 -51
  382. package/docs/developer/launchd_watch_build.md +0 -37
  383. package/docs/developer/mcp/instructions.md +0 -71
  384. package/docs/developer/mcp/invalid_connection_id_handling.md +0 -181
  385. package/docs/developer/mcp/tool_descriptions.yaml +0 -41
  386. package/docs/developer/mcp/unauthenticated.md +0 -30
  387. package/docs/developer/mcp_chatgpt_setup.md +0 -159
  388. package/docs/developer/mcp_claude_code_setup.md +0 -519
  389. package/docs/developer/mcp_https_testing.md +0 -178
  390. package/docs/developer/mcp_https_testing_status.md +0 -130
  391. package/docs/developer/mcp_https_tunnel_status.md +0 -147
  392. package/docs/developer/mcp_oauth_migration_guide.md +0 -196
  393. package/docs/developer/mcp_overview.md +0 -145
  394. package/docs/developer/mcp_server_examples_from_cursor_docs.md +0 -485
  395. package/docs/developer/observation_architecture_documentation_integration.md +0 -368
  396. package/docs/developer/release_orchestrator.md +0 -197
  397. package/docs/developer/repository_cleanup_plan.md +0 -87
  398. package/docs/developer/resolved_blockers.md +0 -49
  399. package/docs/developer/schema_initialization.md +0 -182
  400. package/docs/developer/secrets/README.md +0 -15
  401. package/docs/developer/secrets/secrets_architecture.md +0 -95
  402. package/docs/developer/secrets/secrets_manager_value.md +0 -53
  403. package/docs/developer/secrets/secrets_secure_approach.md +0 -103
  404. package/docs/developer/secrets/secrets_setup.md +0 -116
  405. package/docs/developer/shared_components_submodule_setup.md +0 -273
  406. package/docs/developer/spec_compliance_validation_system.md +0 -261
  407. package/docs/developer/test_coverage_gap_analysis_plan.md +0 -36
  408. package/docs/developer/tunnels.md +0 -327
  409. package/docs/developer/vite_troubleshooting.md +0 -111
  410. package/docs/doc_dependencies.yaml +0 -497
  411. package/docs/examples/schema_breaking_change_reconciliation.md +0 -515
  412. package/docs/feature_units/completed/FU-050/FU-050_spec.md +0 -341
  413. package/docs/feature_units/completed/FU-050/manifest.yaml +0 -330
  414. package/docs/feature_units/completed/FU-051/FU-051_spec.md +0 -173
  415. package/docs/feature_units/completed/FU-051/manifest.yaml +0 -229
  416. package/docs/feature_units/completed/FU-052/FU-052_spec.md +0 -158
  417. package/docs/feature_units/completed/FU-052/manifest.yaml +0 -188
  418. package/docs/feature_units/completed/FU-053/FU-053_spec.md +0 -144
  419. package/docs/feature_units/completed/FU-053/manifest.yaml +0 -145
  420. package/docs/feature_units/completed/FU-054/FU-054_spec.md +0 -144
  421. package/docs/feature_units/completed/FU-054/manifest.yaml +0 -139
  422. package/docs/feature_units/completed/FU-702/billing_spec.md +0 -413
  423. package/docs/feature_units/completed/FU-702/manifest.yaml +0 -418
  424. package/docs/feature_units/standards/DISCOVERY_CAGAN_ALIGNMENT.md +0 -214
  425. package/docs/feature_units/standards/creating_feature_units.md +0 -385
  426. package/docs/feature_units/standards/discovery_process.md +0 -821
  427. package/docs/feature_units/standards/error_protocol.md +0 -60
  428. package/docs/feature_units/standards/execution_instructions.md +0 -87
  429. package/docs/feature_units/standards/feature_unit_spec.md +0 -325
  430. package/docs/feature_units/standards/integration_test_execution.md +0 -127
  431. package/docs/feature_units/standards/manifest_template.yaml +0 -370
  432. package/docs/feature_units/standards/model_selection.md +0 -207
  433. package/docs/feature_units/standards/multi_agent_orchestration.md +0 -411
  434. package/docs/feature_units/standards/release_report_generation.md +0 -448
  435. package/docs/feature_units/standards/release_report_spec.md +0 -444
  436. package/docs/feature_units/standards/release_report_template.md +0 -76
  437. package/docs/feature_units/standards/spec_compliance_validation.md +0 -147
  438. package/docs/feature_units/standards/worker_agent_template.md +0 -191
  439. package/docs/foundation/ai_safety.md +0 -10
  440. package/docs/foundation/composability_analysis.md +0 -308
  441. package/docs/foundation/core_identity.md +0 -50
  442. package/docs/foundation/documentation_design_system.md +0 -505
  443. package/docs/foundation/entity_resolution.md +0 -34
  444. package/docs/foundation/layered_architecture.md +0 -99
  445. package/docs/foundation/mmry_comparison.md +0 -176
  446. package/docs/foundation/philosophy.md +0 -103
  447. package/docs/foundation/problem_statement.md +0 -41
  448. package/docs/foundation/product_positioning.md +0 -69
  449. package/docs/foundation/product_principles.md +0 -18
  450. package/docs/foundation/quality_requirements.md +0 -68
  451. package/docs/foundation/timeline_events.md +0 -19
  452. package/docs/foundation/user_workflows.md +0 -38
  453. package/docs/implementation/PARQUET_MCP_SERVER_FIXES.md +0 -373
  454. package/docs/implementation/PARQUET_SUPPORT_IMPLEMENTATION.md +0 -207
  455. package/docs/infrastructure/deployment.md +0 -372
  456. package/docs/legal/README.md +0 -51
  457. package/docs/legal/compliance.md +0 -854
  458. package/docs/legal/privacy_policy.md +0 -114
  459. package/docs/legal/privacy_policy_changelog.md +0 -49
  460. package/docs/legal/terms_of_service.md +0 -185
  461. package/docs/legal/terms_of_service_changelog.md +0 -62
  462. package/docs/migration/llm_extraction_removal.md +0 -387
  463. package/docs/migration/llm_interpretation_docs_update.md +0 -130
  464. package/docs/observability/logging.md +0 -50
  465. package/docs/observability/metrics_standard.md +0 -38
  466. package/docs/observability/tracing.md +0 -41
  467. package/docs/operations/debugging/README.md +0 -11
  468. package/docs/operations/debugging/error_debug_instructions.md +0 -55
  469. package/docs/operations/health_check.md +0 -73
  470. package/docs/operations/runbook.md +0 -88
  471. package/docs/prompts/llm_extraction_system_prompt.md +0 -31
  472. package/docs/proposals/IMPLEMENTATION_SUMMARY.md +0 -198
  473. package/docs/proposals/MIGRATION_REPORT.md +0 -65
  474. package/docs/proposals/PROPOSAL_TEMPLATE.md +0 -58
  475. package/docs/proposals/README.md +0 -57
  476. package/docs/proposals/agent-trust-framework.md +0 -621
  477. package/docs/proposals/conversation_turn_identity_reverts_forks.md +0 -144
  478. package/docs/proposals/document-v023-release.md +0 -898
  479. package/docs/proposals/iterative_chat_store_mcp_instructions.md +0 -155
  480. package/docs/proposals/llm_sampling_parameters_interpretation_config.md +0 -196
  481. package/docs/proposals/mcp-cli-action-items.md +0 -207
  482. package/docs/proposals/plan-migration-command-integrated-with-commit.md +0 -386
  483. package/docs/proposals/sources-first-ingestion-v10.md +0 -348
  484. package/docs/proposals/test-coverage-gap-analysis.md +0 -26
  485. package/docs/prototypes/PROTOTYPE_QUICKSTART.md +0 -56
  486. package/docs/prototypes/README.md +0 -74
  487. package/docs/reference/error_codes.md +0 -223
  488. package/docs/releases/archived/aspirational/README.md +0 -57
  489. package/docs/releases/archived/aspirational/v0.4.0/manifest.yaml +0 -94
  490. package/docs/releases/archived/aspirational/v0.4.0/release_plan.md +0 -51
  491. package/docs/releases/archived/aspirational/v0.5.0/manifest.yaml +0 -152
  492. package/docs/releases/archived/aspirational/v0.5.0/release_plan.md +0 -236
  493. package/docs/releases/archived/aspirational/v0.9.0/README.md +0 -78
  494. package/docs/releases/archived/aspirational/v0.9.0/manifest.yaml +0 -111
  495. package/docs/releases/archived/aspirational/v0.9.0/release_plan.md +0 -238
  496. package/docs/releases/archived/aspirational/v0.9.0/status.md +0 -89
  497. package/docs/releases/archived/aspirational/v1.0.0/UI_REFACTORING_PLAN.md +0 -239
  498. package/docs/releases/archived/aspirational/v1.0.0/acceptance_criteria.md +0 -88
  499. package/docs/releases/archived/aspirational/v1.0.0/approach_comparison.md +0 -558
  500. package/docs/releases/archived/aspirational/v1.0.0/architectural_impact_chat_ui.md +0 -195
  501. package/docs/releases/archived/aspirational/v1.0.0/blog_post_update_directives.md +0 -491
  502. package/docs/releases/archived/aspirational/v1.0.0/business_viability_discovery_plan.md +0 -135
  503. package/docs/releases/archived/aspirational/v1.0.0/compliance_reports/FU-100_compliance.md +0 -23
  504. package/docs/releases/archived/aspirational/v1.0.0/compliance_reports/FU-101_compliance.md +0 -23
  505. package/docs/releases/archived/aspirational/v1.0.0/compliance_reports/FU-102_compliance.md +0 -23
  506. package/docs/releases/archived/aspirational/v1.0.0/compliance_reports/FU-103_compliance.md +0 -23
  507. package/docs/releases/archived/aspirational/v1.0.0/compliance_reports/FU-105_compliance.md +0 -23
  508. package/docs/releases/archived/aspirational/v1.0.0/continuous_discovery_log.md +0 -77
  509. package/docs/releases/archived/aspirational/v1.0.0/continuous_discovery_plan.md +0 -145
  510. package/docs/releases/archived/aspirational/v1.0.0/cross_platform_signal_detection.md +0 -181
  511. package/docs/releases/archived/aspirational/v1.0.0/deployment_strategy.md +0 -115
  512. package/docs/releases/archived/aspirational/v1.0.0/discovery_checklist.md +0 -195
  513. package/docs/releases/archived/aspirational/v1.0.0/discovery_filtering_criteria.md +0 -197
  514. package/docs/releases/archived/aspirational/v1.0.0/discovery_filtering_keywords.md +0 -143
  515. package/docs/releases/archived/aspirational/v1.0.0/discovery_lead_sourcing_tools.md +0 -438
  516. package/docs/releases/archived/aspirational/v1.0.0/discovery_plan.md +0 -185
  517. package/docs/releases/archived/aspirational/v1.0.0/execution_schedule.md +0 -130
  518. package/docs/releases/archived/aspirational/v1.0.0/feasibility_validation_plan.md +0 -116
  519. package/docs/releases/archived/aspirational/v1.0.0/handle_registration.md +0 -263
  520. package/docs/releases/archived/aspirational/v1.0.0/implementation_logs/FU-100_implementation_log.md +0 -51
  521. package/docs/releases/archived/aspirational/v1.0.0/implementation_logs/FU-101_implementation_log.md +0 -51
  522. package/docs/releases/archived/aspirational/v1.0.0/implementation_logs/FU-102_implementation_log.md +0 -51
  523. package/docs/releases/archived/aspirational/v1.0.0/implementation_logs/FU-103_implementation_log.md +0 -51
  524. package/docs/releases/archived/aspirational/v1.0.0/implementation_logs/FU-105_implementation_log.md +0 -51
  525. package/docs/releases/archived/aspirational/v1.0.0/manifest.yaml +0 -160
  526. package/docs/releases/archived/aspirational/v1.0.0/marketing_agent_instructions.md +0 -209
  527. package/docs/releases/archived/aspirational/v1.0.0/marketing_automation_implementation.md +0 -996
  528. package/docs/releases/archived/aspirational/v1.0.0/marketing_automation_plan.md +0 -291
  529. package/docs/releases/archived/aspirational/v1.0.0/marketing_dogfooding_analysis.md +0 -295
  530. package/docs/releases/archived/aspirational/v1.0.0/marketing_metrics_plan.md +0 -120
  531. package/docs/releases/archived/aspirational/v1.0.0/marketing_plan.md +0 -280
  532. package/docs/releases/archived/aspirational/v1.0.0/marketing_segments_plan.md +0 -128
  533. package/docs/releases/archived/aspirational/v1.0.0/participant_recruitment_log.md +0 -392
  534. package/docs/releases/archived/aspirational/v1.0.0/post_launch_marketing_plan.md +0 -252
  535. package/docs/releases/archived/aspirational/v1.0.0/pre_launch_marketing_plan.md +0 -748
  536. package/docs/releases/archived/aspirational/v1.0.0/pre_mortem.md +0 -122
  537. package/docs/releases/archived/aspirational/v1.0.0/subscription_detection_strategy.md +0 -160
  538. package/docs/releases/archived/aspirational/v1.0.0/usability_discovery_plan.md +0 -115
  539. package/docs/releases/archived/aspirational/v1.0.0/value_discovery_plan.md +0 -279
  540. package/docs/releases/archived/aspirational/v1.0.0/visibility_timing_analysis.md +0 -402
  541. package/docs/releases/archived/aspirational/v2.0.0/status.md +0 -120
  542. package/docs/releases/archived/aspirational/v2.1.0/manifest.yaml +0 -469
  543. package/docs/releases/archived/aspirational/v2.2.0/manifest.yaml +0 -165
  544. package/docs/releases/archived/aspirational/v2.2.0/status.md +0 -283
  545. package/docs/releases/compliance_reports/all_fus_compliance_summary.md +0 -112
  546. package/docs/releases/in_progress/v0.2.0/agent_status.json +0 -420
  547. package/docs/releases/in_progress/v0.2.0/status.md +0 -90
  548. package/docs/releases/v0.1.0/agent_status.json +0 -242
  549. package/docs/releases/v0.1.0/agent_status.json.example +0 -76
  550. package/docs/releases/v0.1.0/compliance_reports/FU-000_compliance.md +0 -23
  551. package/docs/releases/v0.1.0/compliance_reports/FU-002_compliance.md +0 -23
  552. package/docs/releases/v0.1.0/compliance_reports/FU-050_compliance.md +0 -59
  553. package/docs/releases/v0.1.0/compliance_reports/FU-051_compliance.md +0 -39
  554. package/docs/releases/v0.1.0/compliance_reports/FU-052_compliance.md +0 -44
  555. package/docs/releases/v0.1.0/compliance_reports/FU-053_compliance.md +0 -25
  556. package/docs/releases/v0.1.0/compliance_reports/FU-054_compliance.md +0 -31
  557. package/docs/releases/v0.1.0/compliance_reports/FU-055_compliance.md +0 -23
  558. package/docs/releases/v0.1.0/compliance_reports/FU-056_compliance.md +0 -23
  559. package/docs/releases/v0.1.0/compliance_reports/FU-057_compliance.md +0 -23
  560. package/docs/releases/v0.1.0/compliance_reports/FU-058_compliance.md +0 -23
  561. package/docs/releases/v0.1.0/compliance_reports/FU-059_compliance.md +0 -23
  562. package/docs/releases/v0.1.0/compliance_reports/FU-061_compliance.md +0 -23
  563. package/docs/releases/v0.1.0/compliance_reports/FU-100_compliance.md +0 -97
  564. package/docs/releases/v0.1.0/compliance_reports/FU-104_compliance.md +0 -23
  565. package/docs/releases/v0.1.0/compliance_reports/FU-200_compliance.md +0 -23
  566. package/docs/releases/v0.1.0/compliance_reports/FU-201_compliance.md +0 -23
  567. package/docs/releases/v0.1.0/compliance_reports/FU-202_compliance.md +0 -23
  568. package/docs/releases/v0.1.0/compliance_reports/FU-203_compliance.md +0 -23
  569. package/docs/releases/v0.1.0/compliance_reports/FU-204_compliance.md +0 -23
  570. package/docs/releases/v0.1.0/compliance_reports/FU-205_compliance.md +0 -23
  571. package/docs/releases/v0.1.0/compliance_reports/FU-206_compliance.md +0 -23
  572. package/docs/releases/v0.1.0/execution_schedule.md +0 -174
  573. package/docs/releases/v0.1.0/fu_spec_status.md +0 -83
  574. package/docs/releases/v0.1.0/implementation_logs/FU-000_implementation_log.md +0 -51
  575. package/docs/releases/v0.1.0/implementation_logs/FU-002_implementation_log.md +0 -51
  576. package/docs/releases/v0.1.0/implementation_logs/FU-050_implementation_log.md +0 -111
  577. package/docs/releases/v0.1.0/implementation_logs/FU-051_implementation_log.md +0 -91
  578. package/docs/releases/v0.1.0/implementation_logs/FU-052_implementation_log.md +0 -81
  579. package/docs/releases/v0.1.0/implementation_logs/FU-053_implementation_log.md +0 -71
  580. package/docs/releases/v0.1.0/implementation_logs/FU-054_implementation_log.md +0 -71
  581. package/docs/releases/v0.1.0/implementation_logs/FU-055_implementation_log.md +0 -51
  582. package/docs/releases/v0.1.0/implementation_logs/FU-056_implementation_log.md +0 -51
  583. package/docs/releases/v0.1.0/implementation_logs/FU-057_implementation_log.md +0 -51
  584. package/docs/releases/v0.1.0/implementation_logs/FU-058_implementation_log.md +0 -51
  585. package/docs/releases/v0.1.0/implementation_logs/FU-059_implementation_log.md +0 -51
  586. package/docs/releases/v0.1.0/implementation_logs/FU-061_implementation_log.md +0 -51
  587. package/docs/releases/v0.1.0/implementation_logs/FU-100_implementation_log.md +0 -251
  588. package/docs/releases/v0.1.0/implementation_logs/FU-104_implementation_log.md +0 -51
  589. package/docs/releases/v0.1.0/implementation_logs/FU-200_implementation_log.md +0 -51
  590. package/docs/releases/v0.1.0/implementation_logs/FU-201_implementation_log.md +0 -51
  591. package/docs/releases/v0.1.0/implementation_logs/FU-202_implementation_log.md +0 -51
  592. package/docs/releases/v0.1.0/implementation_logs/FU-203_implementation_log.md +0 -51
  593. package/docs/releases/v0.1.0/implementation_logs/FU-204_implementation_log.md +0 -51
  594. package/docs/releases/v0.1.0/implementation_logs/FU-205_implementation_log.md +0 -51
  595. package/docs/releases/v0.1.0/implementation_logs/FU-206_implementation_log.md +0 -51
  596. package/docs/releases/v0.1.0/integration_tests.md +0 -316
  597. package/docs/releases/v0.1.0/manifest.yaml +0 -291
  598. package/docs/releases/v0.1.0/mcp_actions_status.md +0 -101
  599. package/docs/releases/v0.1.0/release_plan.md +0 -196
  600. package/docs/releases/v0.1.0/status.md +0 -148
  601. package/docs/releases/v0.1.0/test_coverage_setup_notes.md +0 -39
  602. package/docs/releases/v0.1.1/manifest.yaml +0 -153
  603. package/docs/releases/v0.2.0/status.md +0 -167
  604. package/docs/releases/v0.2.1/acceptance_criteria.md +0 -200
  605. package/docs/releases/v0.2.1/execution_schedule.md +0 -114
  606. package/docs/releases/v0.2.1/feature_unit_overview.md +0 -246
  607. package/docs/releases/v0.2.1/integration_tests.md +0 -281
  608. package/docs/releases/v0.2.1/manifest.yaml +0 -141
  609. package/docs/releases/v0.2.1/release_plan.md +0 -211
  610. package/docs/releases/v0.2.1/status.md +0 -106
  611. package/docs/releases/v0.2.15/README.md +0 -79
  612. package/docs/releases/v0.2.15/migrations/01_add_source_graph_edges.sql +0 -109
  613. package/docs/releases/v0.2.15/migrations/02_drop_legacy_tables.sql +0 -130
  614. package/docs/releases/v0.2.2/execution_schedule.md +0 -123
  615. package/docs/releases/v0.2.2/integration_tests.md +0 -258
  616. package/docs/releases/v0.2.2/manifest.yaml +0 -108
  617. package/docs/releases/v0.2.2/release_plan.md +0 -246
  618. package/docs/releases/v0.2.2/status.md +0 -113
  619. package/docs/releases/v0.2.3/agent_skills_alignment.md +0 -738
  620. package/docs/releases/v0.2.3/enhancements_summary.md +0 -309
  621. package/docs/releases/v0.2.3/integration_guide.md +0 -3400
  622. package/docs/releases/v0.2.3/manifest.yaml +0 -212
  623. package/docs/releases/v0.2.3/mcp_actions.md +0 -491
  624. package/docs/releases/v0.2.3/plan_completion_review.md +0 -410
  625. package/docs/releases/v0.2.3/release_overview.md +0 -13
  626. package/docs/releases/v0.2.3/schema_extensions/agent_decision.md +0 -311
  627. package/docs/releases/v0.2.3/schema_extensions/agent_session.md +0 -464
  628. package/docs/releases/v0.2.3/schema_extensions/architectural_decision.md +0 -390
  629. package/docs/releases/v0.2.3/schema_extensions/codebase_entity.md +0 -404
  630. package/docs/releases/v0.2.3/schema_extensions/feature_unit.md +0 -307
  631. package/docs/releases/v0.2.3/schema_extensions/release.md +0 -338
  632. package/docs/releases/v0.2.3/schema_extensions/validation_result.md +0 -377
  633. package/docs/releases/v0.2.3/spec.md +0 -569
  634. package/docs/releases/v0.3.0/manifest.yaml +0 -77
  635. package/docs/releases/v0.3.0/migrations/01_add_source_graph_edges.sql +0 -110
  636. package/docs/releases/v0.3.0/migrations/02_drop_legacy_tables.sql +0 -131
  637. package/docs/releases/v0.3.0/status.md +0 -193
  638. package/docs/reports/AUTO_ENHANCEMENT_TEST_RESULTS.md +0 -51
  639. package/docs/reports/AUTO_ENHANCEMENT_TEST_SUMMARY.md +0 -64
  640. package/docs/reports/BIGINT_SERIALIZATION_DEBUG.md +0 -75
  641. package/docs/reports/BUG_LEARNING_PROTOCOL_ESTABLISHED.md +0 -179
  642. package/docs/reports/CONSOLE_LOG_MCP_PROTOCOL_FIX.md +0 -58
  643. package/docs/reports/CRYPTO_TRANSACTION_DISCREPANCY_RESOLUTION.md +0 -108
  644. package/docs/reports/CRYPTO_TRANSACTION_SIDE_BY_SIDE_COMPARISON.md +0 -165
  645. package/docs/reports/FAILING_TESTS_ANALYSIS.md +0 -140
  646. package/docs/reports/FAILING_TESTS_SUMMARY.md +0 -106
  647. package/docs/reports/FINAL_PARQUET_COMPARISON.md +0 -226
  648. package/docs/reports/FINAL_TEST_STATUS.md +0 -145
  649. package/docs/reports/LEGACY_REMOVAL_SUMMARY.md +0 -108
  650. package/docs/reports/MCP_ACTIONS_SUMMARY.md +0 -329
  651. package/docs/reports/MCP_ACTION_TEST_COVERAGE.md +0 -132
  652. package/docs/reports/MCP_SPEC_COMPARISON.md +0 -306
  653. package/docs/reports/MCP_SPEC_COMPARISON_UPDATED.md +0 -247
  654. package/docs/reports/MCP_SPEC_VOCABULARY_CONFORMANCE.md +0 -220
  655. package/docs/reports/MCP_TEST_SUITE_IMPLEMENTATION.md +0 -180
  656. package/docs/reports/MCP_TEST_SUITE_RESULTS.md +0 -182
  657. package/docs/reports/PARQUET_MCP_BUG_REPORT.md +0 -70
  658. package/docs/reports/PARQUET_MCP_STORAGE_COMPLETE.md +0 -214
  659. package/docs/reports/PARQUET_SAMPLE_FILES_CREATED.md +0 -49
  660. package/docs/reports/PARQUET_STORAGE_SUCCESS.md +0 -263
  661. package/docs/reports/PARQUET_VS_NEOTOMA_COMPARISON.md +0 -241
  662. package/docs/reports/REIMPORT_TASKS_BLOCKER.md +0 -50
  663. package/docs/reports/SAMPLE_FILE_STRUCTURE_UPDATE.md +0 -68
  664. package/docs/reports/SAMPLE_PARQUET_IMPORT_TEST_RESULTS.md +0 -91
  665. package/docs/reports/SCHEMA_ENHANCEMENT_STATUS.md +0 -84
  666. package/docs/reports/SCHEMA_ENHANCEMENT_TEST_RESULTS.md +0 -78
  667. package/docs/reports/TASK_RELOAD_BLOCKER.md +0 -40
  668. package/docs/reports/TEST_FIXES_SUMMARY.md +0 -96
  669. package/docs/reports/VOCABULARY_CONFORMANCE_REVIEW.md +0 -177
  670. package/docs/reports/WHY_TESTS_MISSED_BIGINT_ISSUE.md +0 -144
  671. package/docs/reports/beyond_rag_agent_memory_neotoma_architecture_report.md +0 -103
  672. package/docs/reports/dhh_clankers_with_claws_neotoma_report.md +0 -102
  673. package/docs/reports/dr_cintas_pageindex_structure_over_embeddings_report.md +0 -77
  674. package/docs/reports/failure_gallery.md +0 -97
  675. package/docs/reports/fixture_expansion_summary.md +0 -204
  676. package/docs/reports/mcp_action_names_review.md +0 -131
  677. package/docs/reports/mcp_cli_action_items_fidelity_report.md +0 -189
  678. package/docs/reports/neotoma_pdf_interpreted_as_note_investigation_2026_02_23.md +0 -89
  679. package/docs/reports/plan_execution_changes_report.md +0 -122
  680. package/docs/reports/schema_distinctions.md +0 -210
  681. package/docs/reports/schema_redundancy_analysis.md +0 -304
  682. package/docs/specs/FUNCTIONAL_REQUIREMENTS.md +0 -160
  683. package/docs/specs/GENERAL_REQUIREMENTS.md +0 -30
  684. package/docs/specs/ICP_PRIORITY_TIERS.md +0 -132
  685. package/docs/specs/ICP_PROFILES.md +0 -2345
  686. package/docs/specs/INTERNAL_MCP_RELEASE.md +0 -300
  687. package/docs/specs/MANIFEST_ALIGNMENT_SUMMARY.md +0 -162
  688. package/docs/specs/MCP_SPEC.md +0 -2275
  689. package/docs/specs/METRICS_REQUIREMENTS.md +0 -386
  690. package/docs/specs/MVP_EXECUTION_PLAN.md +0 -956
  691. package/docs/specs/MVP_FEATURE_UNITS.md +0 -1821
  692. package/docs/specs/MVP_OVERVIEW.md +0 -184
  693. package/docs/specs/NONFUNCTIONAL_REQUIREMENTS.md +0 -98
  694. package/docs/specs/ONBOARDING_SPEC.md +0 -591
  695. package/docs/specs/PARQUET_MCP_RESOURCES_SPEC.md +0 -328
  696. package/docs/specs/TEST_PLAN.md +0 -116
  697. package/docs/specs/UI_SPEC.md +0 -93
  698. package/docs/subsystems/accessibility.md +0 -48
  699. package/docs/subsystems/auth.md +0 -170
  700. package/docs/subsystems/deletion.md +0 -494
  701. package/docs/subsystems/entity_merge.md +0 -300
  702. package/docs/subsystems/errors.md +0 -82
  703. package/docs/subsystems/events.md +0 -50
  704. package/docs/subsystems/i18n.md +0 -42
  705. package/docs/subsystems/ingestion/ingestion.md +0 -772
  706. package/docs/subsystems/ingestion/state_machines.md +0 -49
  707. package/docs/subsystems/observation_architecture.md +0 -379
  708. package/docs/subsystems/privacy.md +0 -71
  709. package/docs/subsystems/record_types.md +0 -753
  710. package/docs/subsystems/reducer.md +0 -436
  711. package/docs/subsystems/relationships.md +0 -455
  712. package/docs/subsystems/schema.md +0 -1213
  713. package/docs/subsystems/schema_registry.md +0 -588
  714. package/docs/subsystems/schema_snapshots/.gitkeep +0 -6
  715. package/docs/subsystems/schema_snapshots/README.md +0 -209
  716. package/docs/subsystems/schema_snapshots/account/v1.0.json +0 -52
  717. package/docs/subsystems/schema_snapshots/address/v1.0.json +0 -79
  718. package/docs/subsystems/schema_snapshots/agent_message/v1.0.json +0 -96
  719. package/docs/subsystems/schema_snapshots/balance/v1.0.json +0 -64
  720. package/docs/subsystems/schema_snapshots/company/v1.0.json +0 -86
  721. package/docs/subsystems/schema_snapshots/contact/v1.0.json +0 -68
  722. package/docs/subsystems/schema_snapshots/contact/v1.1.json +0 -112
  723. package/docs/subsystems/schema_snapshots/contract/v1.0.json +0 -48
  724. package/docs/subsystems/schema_snapshots/conversation/v1.0.json +0 -102
  725. package/docs/subsystems/schema_snapshots/crypto_transaction/v1.0.json +0 -76
  726. package/docs/subsystems/schema_snapshots/email/v1.0.json +0 -87
  727. package/docs/subsystems/schema_snapshots/event/v1.0.json +0 -79
  728. package/docs/subsystems/schema_snapshots/exercise/v1.0.json +0 -72
  729. package/docs/subsystems/schema_snapshots/fixed_cost/v1.0.json +0 -112
  730. package/docs/subsystems/schema_snapshots/flow/v1.0.json +0 -84
  731. package/docs/subsystems/schema_snapshots/goal/v1.0.json +0 -71
  732. package/docs/subsystems/schema_snapshots/holding/v1.0.json +0 -75
  733. package/docs/subsystems/schema_snapshots/income/v1.0.json +0 -68
  734. package/docs/subsystems/schema_snapshots/liability/v1.0.json +0 -60
  735. package/docs/subsystems/schema_snapshots/location/v1.0.json +0 -79
  736. package/docs/subsystems/schema_snapshots/meal/v1.0.json +0 -68
  737. package/docs/subsystems/schema_snapshots/message/v1.0.json +0 -72
  738. package/docs/subsystems/schema_snapshots/note/v1.0.json +0 -64
  739. package/docs/subsystems/schema_snapshots/order/v1.0.json +0 -72
  740. package/docs/subsystems/schema_snapshots/person/v1.0.json +0 -86
  741. package/docs/subsystems/schema_snapshots/project/v1.0.json +0 -75
  742. package/docs/subsystems/schema_snapshots/property/v1.0.json +0 -64
  743. package/docs/subsystems/schema_snapshots/purchase/v1.0.json +0 -75
  744. package/docs/subsystems/schema_snapshots/relationship/v1.0.json +0 -63
  745. package/docs/subsystems/schema_snapshots/task/v1.0.json +0 -91
  746. package/docs/subsystems/schema_snapshots/tax_event/v1.0.json +0 -72
  747. package/docs/subsystems/schema_snapshots/tax_filing/v1.0.json +0 -83
  748. package/docs/subsystems/schema_snapshots/transaction/v1.0.json +0 -40
  749. package/docs/subsystems/schema_snapshots/transfer/v1.0.json +0 -76
  750. package/docs/subsystems/schema_snapshots/wallet/v1.0.json +0 -68
  751. package/docs/subsystems/search/search.md +0 -63
  752. package/docs/subsystems/sources.md +0 -493
  753. package/docs/subsystems/vector_ops.md +0 -72
  754. package/docs/templates/issue_template.md +0 -36
  755. package/docs/templates/pr_template.md +0 -74
  756. package/docs/testing/ROUTE_COVERAGE_MATRIX.md +0 -104
  757. package/docs/testing/WHY_PARTIAL_ROUTE_COVERAGE.md +0 -183
  758. package/docs/testing/automated_test_catalog.md +0 -353
  759. package/docs/testing/cli_command_coverage_review.md +0 -130
  760. package/docs/testing/fixtures_standard.md +0 -202
  761. package/docs/testing/test_coverage_audit_summary.md +0 -571
  762. package/docs/testing/testing_standard.md +0 -146
  763. package/docs/ui/DESIGN_SYSTEM_UPDATE_SUMMARY.md +0 -152
  764. package/docs/ui/SHADCN_INTEGRATION_COMPLETE.md +0 -255
  765. package/docs/ui/design_constraints_template.yaml +0 -228
  766. package/docs/ui/design_system/accessibility.md +0 -38
  767. package/docs/ui/design_system/authentication_components.md +0 -38
  768. package/docs/ui/design_system/billing_components.md +0 -36
  769. package/docs/ui/design_system/brand_alignment.md +0 -35
  770. package/docs/ui/design_system/color_palette.md +0 -95
  771. package/docs/ui/design_system/component_styles.md +0 -241
  772. package/docs/ui/design_system/dark_mode.md +0 -30
  773. package/docs/ui/design_system/empty_states.md +0 -47
  774. package/docs/ui/design_system/error_states.md +0 -35
  775. package/docs/ui/design_system/file_upload_components.md +0 -60
  776. package/docs/ui/design_system/future_considerations.md +0 -19
  777. package/docs/ui/design_system/iconography.md +0 -21
  778. package/docs/ui/design_system/icp_aesthetic_analysis.md +0 -35
  779. package/docs/ui/design_system/icp_preference_alignment.md +0 -33
  780. package/docs/ui/design_system/implementation_notes.md +0 -119
  781. package/docs/ui/design_system/loading_states.md +0 -40
  782. package/docs/ui/design_system/motion_and_animation.md +0 -45
  783. package/docs/ui/design_system/navigation_components.md +0 -63
  784. package/docs/ui/design_system/onboarding_components.md +0 -48
  785. package/docs/ui/design_system/responsive_design.md +0 -26
  786. package/docs/ui/design_system/search_components.md +0 -32
  787. package/docs/ui/design_system/settings_components.md +0 -29
  788. package/docs/ui/design_system/spacing_and_layout.md +0 -67
  789. package/docs/ui/design_system/style_guide.md +0 -395
  790. package/docs/ui/design_system/typography.md +0 -88
  791. package/docs/ui/design_system/visual_hierarchy.md +0 -64
  792. package/docs/ui/design_system.md +0 -124
  793. package/docs/ui/dsl_spec.md +0 -97
  794. package/docs/ui/patterns/dashboard.md +0 -58
  795. package/docs/ui/patterns/detail.md +0 -68
  796. package/docs/ui/patterns/list.md +0 -72
  797. package/docs/ui/patterns/navigation.md +0 -314
  798. package/docs/ui/patterns/settings.md +0 -52
  799. package/docs/ui/patterns/wizard.md +0 -53
  800. package/docs/ui/prototype_guide.md +0 -300
  801. package/docs/ui/shadcn_components.md +0 -189
  802. package/docs/ui/style_guide_updates.md +0 -74
  803. package/docs/vocabulary/canonical_terms.md +0 -318
  804. package/fly.toml +0 -29
  805. package/foundation/.cursor/rules/agent_constraints.mdc +0 -198
  806. package/foundation/.cursor/rules/agent_test_execution.mdc +0 -356
  807. package/foundation/.cursor/rules/autonomous_execution.mdc +0 -117
  808. package/foundation/.cursor/rules/behavioral_self_adaptation.mdc +0 -531
  809. package/foundation/.cursor/rules/bug_fix_detection.mdc +0 -142
  810. package/foundation/.cursor/rules/checkpoint_management.mdc +0 -191
  811. package/foundation/.cursor/rules/configuration_management.mdc +0 -156
  812. package/foundation/.cursor/rules/content_style_enforcement.mdc +0 -138
  813. package/foundation/.cursor/rules/dependency_installation.mdc +0 -146
  814. package/foundation/.cursor/rules/document_loading_order.mdc +0 -194
  815. package/foundation/.cursor/rules/documentation_rules.mdc +0 -166
  816. package/foundation/.cursor/rules/downstream_doc_updates.mdc +0 -266
  817. package/foundation/.cursor/rules/environment_variables_1password.mdc +0 -307
  818. package/foundation/.cursor/rules/environment_variables_env_file.mdc +0 -121
  819. package/foundation/.cursor/rules/feature_unit_detection.mdc +0 -129
  820. package/foundation/.cursor/rules/file_naming.mdc +0 -31
  821. package/foundation/.cursor/rules/git_remote_sync.mdc +0 -240
  822. package/foundation/.cursor/rules/instruction_documentation.mdc +0 -302
  823. package/foundation/.cursor/rules/native_browser_debugging.mdc +0 -65
  824. package/foundation/.cursor/rules/plan_execution_testing.mdc +0 -98
  825. package/foundation/.cursor/rules/post_build_testing.mdc +0 -159
  826. package/foundation/.cursor/rules/prefer_cli_tools.mdc +0 -234
  827. package/foundation/.cursor/rules/readme_maintenance.mdc +0 -153
  828. package/foundation/.cursor/rules/release_detection.mdc +0 -92
  829. package/foundation/.cursor/rules/release_status_readme_update.mdc +0 -64
  830. package/foundation/.cursor/rules/risk_management.mdc +0 -167
  831. package/foundation/.cursor/rules/security.mdc +0 -158
  832. package/foundation/.cursor/rules/test_first_workflow.mdc +0 -341
  833. package/foundation/.cursor/rules/worktree_env.mdc +0 -53
  834. package/foundation/.cursor/skills/analyze/SKILL.md +0 -566
  835. package/foundation/.cursor/skills/commit/SKILL.md +0 -782
  836. package/foundation/.cursor/skills/create-feature-unit/SKILL.md +0 -180
  837. package/foundation/.cursor/skills/create-prototype/SKILL.md +0 -91
  838. package/foundation/.cursor/skills/create-release/SKILL.md +0 -432
  839. package/foundation/.cursor/skills/create-rule/SKILL.md +0 -292
  840. package/foundation/.cursor/skills/debug/SKILL.md +0 -980
  841. package/foundation/.cursor/skills/final-review/SKILL.md +0 -93
  842. package/foundation/.cursor/skills/fix-feature-bug/SKILL.md +0 -100
  843. package/foundation/.cursor/skills/manage-error-debugging/SKILL.md +0 -182
  844. package/foundation/.cursor/skills/publish/SKILL.md +0 -554
  845. package/foundation/.cursor/skills/pull/SKILL.md +0 -315
  846. package/foundation/.cursor/skills/push/SKILL.md +0 -254
  847. package/foundation/.cursor/skills/report/SKILL.md +0 -1501
  848. package/foundation/.cursor/skills/report-error/SKILL.md +0 -1501
  849. package/foundation/.cursor/skills/run-feature-workflow/SKILL.md +0 -79
  850. package/foundation/.cursor/skills/setup-commands/SKILL.md +0 -28
  851. package/foundation/.cursor/skills/setup-cursor-copies/SKILL.md +0 -233
  852. package/foundation/.cursor/skills/sync-env-from-1password/SKILL.md +0 -302
  853. package/foundation/CONTRIBUTING.md +0 -202
  854. package/foundation/LICENSE +0 -22
  855. package/foundation/MIGRATION.md +0 -396
  856. package/foundation/README.md +0 -391
  857. package/foundation/agent_instructions/README.md +0 -559
  858. package/foundation/config/foundation-config.yaml +0 -498
  859. package/foundation/config/foundation_config.yaml +0 -475
  860. package/foundation/config/repo_adapters/personal.yaml +0 -40
  861. package/foundation/config/repo_adapters/template.yaml +0 -45
  862. package/foundation/conventions/code_conventions.md +0 -908
  863. package/foundation/conventions/documentation_standards.md +0 -459
  864. package/foundation/conventions/naming_patterns.yaml +0 -139
  865. package/foundation/conventions/testing_conventions.md +0 -374
  866. package/foundation/conventions/writing_style_guide.md +0 -221
  867. package/foundation/development/branch_strategy.md +0 -266
  868. package/foundation/development/feature_unit_workflow.md +0 -423
  869. package/foundation/development/pr_process.md +0 -385
  870. package/foundation/development/release_workflow.md +0 -2296
  871. package/foundation/development/templates/feature_unit_spec_template.md +0 -312
  872. package/foundation/development/templates/manifest_template_extended.yaml +0 -303
  873. package/foundation/development/templates/manifest_template_simple.yaml +0 -148
  874. package/foundation/development/workflow.md +0 -509
  875. package/foundation/development/worktree_setup.sh +0 -207
  876. package/foundation/scripts/README.md +0 -230
  877. package/foundation/scripts/__pycache__/op_sync_env_from_1password.cpython-314.pyc +0 -0
  878. package/foundation/scripts/install-foundation.sh +0 -232
  879. package/foundation/scripts/install_foundation.sh +0 -232
  880. package/foundation/scripts/op_sync_env_from_1password.py +0 -1007
  881. package/foundation/scripts/report_error_create_dirs.sh +0 -14
  882. package/foundation/scripts/report_error_generate_id.sh +0 -10
  883. package/foundation/scripts/report_error_update_queue.sh +0 -24
  884. package/foundation/scripts/report_error_validate_target.sh +0 -34
  885. package/foundation/scripts/report_error_wait_resolution.sh +0 -69
  886. package/foundation/scripts/validate_setup.sh +0 -147
  887. package/foundation/security/credential_management.md +0 -263
  888. package/foundation/security/pre_commit_audit.sh +0 -78
  889. package/foundation/security/security_rules.md +0 -163
  890. package/foundation/strategy/README.md +0 -279
  891. package/foundation/strategy/competitive_analysis_template.md +0 -271
  892. package/foundation/strategy/partnership_analysis_template.md +0 -423
  893. package/foundation/strategy/project_assessment_framework.md +0 -485
  894. package/foundation/strategy/relevance_analysis_template.md +0 -297
  895. package/foundation/tooling/README.md +0 -198
  896. package/foundation/validation/README.md +0 -120
  897. package/foundation-config.yaml +0 -543
  898. package/frontend/docs.html +0 -43
  899. package/frontend/frontend/.vite-prototype/deps/@noble_curves_ed25519__js.js +0 -2859
  900. package/frontend/frontend/.vite-prototype/deps/@noble_curves_ed25519__js.js.map +0 -7
  901. package/frontend/frontend/.vite-prototype/deps/@noble_hashes_utils__js.js +0 -62
  902. package/frontend/frontend/.vite-prototype/deps/@noble_hashes_utils__js.js.map +0 -7
  903. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-dialog.js +0 -464
  904. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-dialog.js.map +0 -7
  905. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-dropdown-menu.js +0 -1488
  906. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-dropdown-menu.js.map +0 -7
  907. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-label.js +0 -84
  908. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-label.js.map +0 -7
  909. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-scroll-area.js +0 -757
  910. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-scroll-area.js.map +0 -7
  911. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-select.js +0 -1351
  912. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-select.js.map +0 -7
  913. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-slot.js +0 -18
  914. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-slot.js.map +0 -7
  915. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-toast.js +0 -675
  916. package/frontend/frontend/.vite-prototype/deps/@radix-ui_react-toast.js.map +0 -7
  917. package/frontend/frontend/.vite-prototype/deps/@tanstack_react-table.js +0 -3254
  918. package/frontend/frontend/.vite-prototype/deps/@tanstack_react-table.js.map +0 -7
  919. package/frontend/frontend/.vite-prototype/deps/_metadata.json +0 -187
  920. package/frontend/frontend/.vite-prototype/deps/chunk-557GXNYU.js +0 -23
  921. package/frontend/frontend/.vite-prototype/deps/chunk-557GXNYU.js.map +0 -7
  922. package/frontend/frontend/.vite-prototype/deps/chunk-6FYWT56J.js.map +0 -7
  923. package/frontend/frontend/.vite-prototype/deps/chunk-C7HFWHWH.js +0 -271
  924. package/frontend/frontend/.vite-prototype/deps/chunk-C7HFWHWH.js.map +0 -7
  925. package/frontend/frontend/.vite-prototype/deps/chunk-CJDTXCAB.js +0 -49
  926. package/frontend/frontend/.vite-prototype/deps/chunk-CJDTXCAB.js.map +0 -7
  927. package/frontend/frontend/.vite-prototype/deps/chunk-DC5AMYBS.js +0 -39
  928. package/frontend/frontend/.vite-prototype/deps/chunk-DC5AMYBS.js.map +0 -7
  929. package/frontend/frontend/.vite-prototype/deps/chunk-F4FBYZZO.js +0 -2258
  930. package/frontend/frontend/.vite-prototype/deps/chunk-F4FBYZZO.js.map +0 -7
  931. package/frontend/frontend/.vite-prototype/deps/chunk-GIBJ3MQP.js +0 -129
  932. package/frontend/frontend/.vite-prototype/deps/chunk-GIBJ3MQP.js.map +0 -7
  933. package/frontend/frontend/.vite-prototype/deps/chunk-IMIZXM4S.js +0 -218
  934. package/frontend/frontend/.vite-prototype/deps/chunk-IMIZXM4S.js.map +0 -7
  935. package/frontend/frontend/.vite-prototype/deps/chunk-K236IVZX.js +0 -21628
  936. package/frontend/frontend/.vite-prototype/deps/chunk-K236IVZX.js.map +0 -7
  937. package/frontend/frontend/.vite-prototype/deps/chunk-LPO6FEV6.js +0 -21
  938. package/frontend/frontend/.vite-prototype/deps/chunk-LPO6FEV6.js.map +0 -7
  939. package/frontend/frontend/.vite-prototype/deps/chunk-PZJDTVNM.js +0 -144
  940. package/frontend/frontend/.vite-prototype/deps/chunk-PZJDTVNM.js.map +0 -7
  941. package/frontend/frontend/.vite-prototype/deps/chunk-RGYP7AMI.js +0 -1116
  942. package/frontend/frontend/.vite-prototype/deps/chunk-RGYP7AMI.js.map +0 -7
  943. package/frontend/frontend/.vite-prototype/deps/chunk-SMVRXQSC.js +0 -928
  944. package/frontend/frontend/.vite-prototype/deps/chunk-SMVRXQSC.js.map +0 -7
  945. package/frontend/frontend/.vite-prototype/deps/chunk-SPBFJIQZ.js +0 -49
  946. package/frontend/frontend/.vite-prototype/deps/chunk-SPBFJIQZ.js.map +0 -7
  947. package/frontend/frontend/.vite-prototype/deps/chunk-UQF5EARV.js +0 -9
  948. package/frontend/frontend/.vite-prototype/deps/chunk-UQF5EARV.js.map +0 -7
  949. package/frontend/frontend/.vite-prototype/deps/chunk-VEFHXNY4.js +0 -186
  950. package/frontend/frontend/.vite-prototype/deps/chunk-VEFHXNY4.js.map +0 -7
  951. package/frontend/frontend/.vite-prototype/deps/chunk-Z55WIHBM.js +0 -349
  952. package/frontend/frontend/.vite-prototype/deps/chunk-Z55WIHBM.js.map +0 -7
  953. package/frontend/frontend/.vite-prototype/deps/class-variance-authority.js +0 -51
  954. package/frontend/frontend/.vite-prototype/deps/class-variance-authority.js.map +0 -7
  955. package/frontend/frontend/.vite-prototype/deps/clsx.js +0 -10
  956. package/frontend/frontend/.vite-prototype/deps/clsx.js.map +0 -7
  957. package/frontend/frontend/.vite-prototype/deps/lucide-react.js +0 -31586
  958. package/frontend/frontend/.vite-prototype/deps/lucide-react.js.map +0 -7
  959. package/frontend/frontend/.vite-prototype/deps/package.json +0 -3
  960. package/frontend/frontend/.vite-prototype/deps/papaparse.js +0 -431
  961. package/frontend/frontend/.vite-prototype/deps/papaparse.js.map +0 -7
  962. package/frontend/frontend/.vite-prototype/deps/react-dom.js +0 -7
  963. package/frontend/frontend/.vite-prototype/deps/react-dom.js.map +0 -7
  964. package/frontend/frontend/.vite-prototype/deps/react-dom_client.js +0 -39
  965. package/frontend/frontend/.vite-prototype/deps/react-dom_client.js.map +0 -7
  966. package/frontend/frontend/.vite-prototype/deps/react.js +0 -6
  967. package/frontend/frontend/.vite-prototype/deps/react.js.map +0 -7
  968. package/frontend/frontend/.vite-prototype/deps/react_jsx-dev-runtime.js +0 -913
  969. package/frontend/frontend/.vite-prototype/deps/react_jsx-dev-runtime.js.map +0 -7
  970. package/frontend/frontend/.vite-prototype/deps/react_jsx-runtime.js +0 -7
  971. package/frontend/frontend/.vite-prototype/deps/react_jsx-runtime.js.map +0 -7
  972. package/frontend/frontend/.vite-prototype/deps/sonner.js +0 -1139
  973. package/frontend/frontend/.vite-prototype/deps/sonner.js.map +0 -7
  974. package/frontend/frontend/.vite-prototype/deps/tailwind-merge.js +0 -2534
  975. package/frontend/frontend/.vite-prototype/deps/tailwind-merge.js.map +0 -7
  976. package/frontend/index.html +0 -38
  977. package/frontend/src/App.tsx +0 -15
  978. package/frontend/src/bridge/discovery.ts +0 -126
  979. package/frontend/src/bridge/index.ts +0 -9
  980. package/frontend/src/bridge/mcp.ts +0 -85
  981. package/frontend/src/bridge/types.ts +0 -24
  982. package/frontend/src/bridge/websocket.ts +0 -349
  983. package/frontend/src/components/AIAgentBridge.tsx +0 -75
  984. package/frontend/src/components/AboutPage.tsx +0 -102
  985. package/frontend/src/components/AppNavigationSidebar.tsx +0 -181
  986. package/frontend/src/components/AppSidebar.tsx +0 -206
  987. package/frontend/src/components/AuthErrorHandler.tsx +0 -23
  988. package/frontend/src/components/Dashboard.tsx +0 -303
  989. package/frontend/src/components/DashboardPage.tsx +0 -78
  990. package/frontend/src/components/EmptyPlaceholder.tsx +0 -58
  991. package/frontend/src/components/EntityDetail.tsx +0 -801
  992. package/frontend/src/components/EntityList.tsx +0 -409
  993. package/frontend/src/components/ErrorBoundary.tsx +0 -131
  994. package/frontend/src/components/FileUploadView.tsx +0 -246
  995. package/frontend/src/components/FloatingSettingsButton.tsx +0 -46
  996. package/frontend/src/components/Header.tsx +0 -43
  997. package/frontend/src/components/IntegrationsPage.tsx +0 -46
  998. package/frontend/src/components/InterpretationList.tsx +0 -246
  999. package/frontend/src/components/KeyManagementDialog.tsx +0 -227
  1000. package/frontend/src/components/Layout.tsx +0 -67
  1001. package/frontend/src/components/MCPChatGPTPage.tsx +0 -128
  1002. package/frontend/src/components/MCPClaudePage.tsx +0 -112
  1003. package/frontend/src/components/MCPCodeiumPage.tsx +0 -100
  1004. package/frontend/src/components/MCPConfigurationPage.tsx +0 -624
  1005. package/frontend/src/components/MCPConnectionDialog.tsx +0 -177
  1006. package/frontend/src/components/MCPConnectionsList.tsx +0 -197
  1007. package/frontend/src/components/MCPContinuePage.tsx +0 -90
  1008. package/frontend/src/components/MCPCursorPage.tsx +0 -379
  1009. package/frontend/src/components/MCPGeminiPage.tsx +0 -102
  1010. package/frontend/src/components/MCPGitHubCopilotPage.tsx +0 -100
  1011. package/frontend/src/components/MCPGrokPage.tsx +0 -99
  1012. package/frontend/src/components/MCPJetBrainsPage.tsx +0 -107
  1013. package/frontend/src/components/MCPManusPage.tsx +0 -104
  1014. package/frontend/src/components/MCPSetupDialog.tsx +0 -268
  1015. package/frontend/src/components/MCPVSCodePage.tsx +0 -100
  1016. package/frontend/src/components/MCPWindsurfPage.tsx +0 -99
  1017. package/frontend/src/components/MainApp.tsx +0 -19
  1018. package/frontend/src/components/NotFound.tsx +0 -46
  1019. package/frontend/src/components/OAuthPage.tsx +0 -426
  1020. package/frontend/src/components/ObservationList.tsx +0 -277
  1021. package/frontend/src/components/ProtectedRoute.tsx +0 -38
  1022. package/frontend/src/components/QuickEntryPanel.tsx +0 -99
  1023. package/frontend/src/components/RealtimeStatusIndicator.tsx +0 -32
  1024. package/frontend/src/components/RecentActivityFeed.tsx +0 -198
  1025. package/frontend/src/components/RelationshipDetail.tsx +0 -232
  1026. package/frontend/src/components/RelationshipList.tsx +0 -269
  1027. package/frontend/src/components/SchemaDetail.test.tsx +0 -53
  1028. package/frontend/src/components/SchemaDetail.tsx +0 -230
  1029. package/frontend/src/components/SchemaList.tsx +0 -228
  1030. package/frontend/src/components/SearchResults.tsx +0 -318
  1031. package/frontend/src/components/SeoHead.tsx +0 -40
  1032. package/frontend/src/components/SitePage.tsx +0 -654
  1033. package/frontend/src/components/SourceDetail.tsx +0 -382
  1034. package/frontend/src/components/SourceTable.tsx +0 -243
  1035. package/frontend/src/components/StyleGuide.md +0 -48
  1036. package/frontend/src/components/StyleGuide.tsx +0 -2316
  1037. package/frontend/src/components/TimelineView.tsx +0 -321
  1038. package/frontend/src/components/UniversalSearch.tsx +0 -518
  1039. package/frontend/src/components/design-system/BadgesPage.tsx +0 -47
  1040. package/frontend/src/components/design-system/ButtonsPage.tsx +0 -67
  1041. package/frontend/src/components/design-system/CardsPage.tsx +0 -31
  1042. package/frontend/src/components/design-system/CollapsiblePage.tsx +0 -84
  1043. package/frontend/src/components/design-system/ColorsPage.tsx +0 -125
  1044. package/frontend/src/components/design-system/DesignSystemIndex.tsx +0 -73
  1045. package/frontend/src/components/design-system/DesignSystemLayout.tsx +0 -22
  1046. package/frontend/src/components/design-system/DesignSystemRouter.tsx +0 -43
  1047. package/frontend/src/components/design-system/InputsPage.tsx +0 -40
  1048. package/frontend/src/components/design-system/PageFormatsPage.tsx +0 -263
  1049. package/frontend/src/components/design-system/ProgressPage.tsx +0 -54
  1050. package/frontend/src/components/design-system/SkeletonPage.tsx +0 -68
  1051. package/frontend/src/components/design-system/SpacingPage.tsx +0 -45
  1052. package/frontend/src/components/design-system/StyleGuidePage.tsx +0 -313
  1053. package/frontend/src/components/design-system/SwitchPage.tsx +0 -60
  1054. package/frontend/src/components/design-system/TablesPage.tsx +0 -206
  1055. package/frontend/src/components/design-system/TabsPage.tsx +0 -88
  1056. package/frontend/src/components/design-system/TooltipPage.tsx +0 -94
  1057. package/frontend/src/components/design-system/TypographyPage.tsx +0 -81
  1058. package/frontend/src/components/icons/CursorIcon.tsx +0 -26
  1059. package/frontend/src/components/quick-entry/ContactDialog.tsx +0 -177
  1060. package/frontend/src/components/quick-entry/EventDialog.tsx +0 -204
  1061. package/frontend/src/components/quick-entry/TaskDialog.tsx +0 -204
  1062. package/frontend/src/components/quick-entry/TransactionDialog.tsx +0 -188
  1063. package/frontend/src/components/ui/alert.tsx +0 -59
  1064. package/frontend/src/components/ui/badge.tsx +0 -36
  1065. package/frontend/src/components/ui/breadcrumb.tsx +0 -120
  1066. package/frontend/src/components/ui/button.tsx +0 -56
  1067. package/frontend/src/components/ui/card.tsx +0 -68
  1068. package/frontend/src/components/ui/collapsible.tsx +0 -9
  1069. package/frontend/src/components/ui/dialog.tsx +0 -81
  1070. package/frontend/src/components/ui/dropdown-menu.tsx +0 -195
  1071. package/frontend/src/components/ui/input-group.tsx +0 -26
  1072. package/frontend/src/components/ui/input.tsx +0 -24
  1073. package/frontend/src/components/ui/label.tsx +0 -19
  1074. package/frontend/src/components/ui/progress.tsx +0 -26
  1075. package/frontend/src/components/ui/scroll-area.tsx +0 -35
  1076. package/frontend/src/components/ui/select.tsx +0 -173
  1077. package/frontend/src/components/ui/separator.tsx +0 -31
  1078. package/frontend/src/components/ui/sheet.tsx +0 -139
  1079. package/frontend/src/components/ui/sidebar.tsx +0 -851
  1080. package/frontend/src/components/ui/skeleton.tsx +0 -15
  1081. package/frontend/src/components/ui/switch.tsx +0 -35
  1082. package/frontend/src/components/ui/table-scroll-wrapper.tsx +0 -96
  1083. package/frontend/src/components/ui/table.tsx +0 -127
  1084. package/frontend/src/components/ui/tabs.tsx +0 -53
  1085. package/frontend/src/components/ui/textarea.tsx +0 -23
  1086. package/frontend/src/components/ui/toast.tsx +0 -122
  1087. package/frontend/src/components/ui/toaster.tsx +0 -32
  1088. package/frontend/src/components/ui/tooltip.tsx +0 -28
  1089. package/frontend/src/components/ui/use-toast.ts +0 -194
  1090. package/frontend/src/constants/integrations.ts +0 -51
  1091. package/frontend/src/contexts/AuthContext.tsx +0 -205
  1092. package/frontend/src/contexts/RealtimeContext.tsx +0 -119
  1093. package/frontend/src/docs/DocumentationApp.tsx +0 -104
  1094. package/frontend/src/docs/DocumentationDirectory.tsx +0 -159
  1095. package/frontend/src/docs/DocumentationLayout.tsx +0 -31
  1096. package/frontend/src/docs/DocumentationPage.tsx +0 -38
  1097. package/frontend/src/docs/DocumentationSidebar.tsx +0 -15
  1098. package/frontend/src/docs/MarkdownContent.tsx +0 -212
  1099. package/frontend/src/docs/README.md +0 -198
  1100. package/frontend/src/docs/main.tsx +0 -12
  1101. package/frontend/src/hooks/use-mobile.tsx +0 -19
  1102. package/frontend/src/hooks/useKeys.ts +0 -202
  1103. package/frontend/src/hooks/useMCPConfig.ts +0 -175
  1104. package/frontend/src/hooks/useRealtimeEntities.ts +0 -56
  1105. package/frontend/src/hooks/useRealtimeObservations.ts +0 -56
  1106. package/frontend/src/hooks/useRealtimeRelationships.ts +0 -56
  1107. package/frontend/src/hooks/useRealtimeSources.ts +0 -53
  1108. package/frontend/src/hooks/useRealtimeTimeline.ts +0 -53
  1109. package/frontend/src/hooks/useSettings.ts +0 -95
  1110. package/frontend/src/hooks/useStorageQuota.ts +0 -65
  1111. package/frontend/src/hooks/useTheme.tsx +0 -42
  1112. package/frontend/src/index.css +0 -247
  1113. package/frontend/src/lib/api_client.ts +0 -8
  1114. package/frontend/src/lib/auth.ts +0 -100
  1115. package/frontend/src/lib/idempotency.ts +0 -25
  1116. package/frontend/src/lib/utils.ts +0 -7
  1117. package/frontend/src/main.tsx +0 -40
  1118. package/frontend/src/sample-data/sets-medium.csv +0 -55
  1119. package/frontend/src/sample-data/sets-medium.ts +0 -45
  1120. package/frontend/src/shared/.eslintrc.json +0 -35
  1121. package/frontend/src/shared/.github/README.md +0 -55
  1122. package/frontend/src/shared/.github/workflows/ci.yml +0 -88
  1123. package/frontend/src/shared/.github/workflows/release.yml +0 -34
  1124. package/frontend/src/shared/.github/workflows/setup.yml +0 -56
  1125. package/frontend/src/shared/README.md +0 -163
  1126. package/frontend/src/shared/SETUP.md +0 -121
  1127. package/frontend/src/shared/components.json +0 -20
  1128. package/frontend/src/shared/package-lock.json +0 -4508
  1129. package/frontend/src/shared/package.json +0 -78
  1130. package/frontend/src/shared/src/components/AppSidebar.tsx +0 -77
  1131. package/frontend/src/shared/src/components/ErrorBoundary.tsx +0 -87
  1132. package/frontend/src/shared/src/components/Layout.tsx +0 -262
  1133. package/frontend/src/shared/src/components/ui/breadcrumb.tsx +0 -115
  1134. package/frontend/src/shared/src/components/ui/button.tsx +0 -56
  1135. package/frontend/src/shared/src/components/ui/calendar.tsx +0 -211
  1136. package/frontend/src/shared/src/components/ui/input.tsx +0 -22
  1137. package/frontend/src/shared/src/components/ui/popover.tsx +0 -29
  1138. package/frontend/src/shared/src/components/ui/separator.tsx +0 -29
  1139. package/frontend/src/shared/src/components/ui/sheet.tsx +0 -140
  1140. package/frontend/src/shared/src/components/ui/sidebar.tsx +0 -519
  1141. package/frontend/src/shared/src/components/ui/skeleton.tsx +0 -15
  1142. package/frontend/src/shared/src/components/ui/tooltip.tsx +0 -28
  1143. package/frontend/src/shared/src/hooks/use-mobile.tsx +0 -19
  1144. package/frontend/src/shared/src/index.css +0 -75
  1145. package/frontend/src/shared/src/index.ts +0 -34
  1146. package/frontend/src/shared/src/lib/utils.ts +0 -6
  1147. package/frontend/src/shared/tailwind.config.mjs +0 -67
  1148. package/frontend/src/shared/tsconfig.json +0 -29
  1149. package/frontend/src/site/seo_metadata.ts +0 -133
  1150. package/frontend/src/site/site_data.test.ts +0 -36
  1151. package/frontend/src/site/site_data.ts +0 -575
  1152. package/frontend/src/store/README.md +0 -10
  1153. package/frontend/src/utils/api_access.ts +0 -24
  1154. package/frontend/src/utils/csv.test.ts +0 -42
  1155. package/frontend/src/utils/csv.ts +0 -45
  1156. package/frontend/src/utils/csv_summary.ts +0 -139
  1157. package/frontend/src/utils/debounce.ts +0 -24
  1158. package/frontend/src/utils/entity_display.test.ts +0 -334
  1159. package/frontend/src/utils/entity_display.ts +0 -23
  1160. package/frontend/src/utils/entity_type_formatter.ts +0 -56
  1161. package/frontend/src/utils/error_utils.ts +0 -137
  1162. package/frontend/src/utils/property_keys.ts +0 -36
  1163. package/frontend/src/utils/schema_icons.test.ts +0 -59
  1164. package/frontend/src/utils/schema_icons.ts +0 -229
  1165. package/frontend/src/utils/time.ts +0 -37
  1166. package/frontend/src/vite-env.d.ts +0 -14
  1167. package/frontend/tsconfig.json +0 -27
  1168. package/frontend/tsconfig.node.json +0 -11
  1169. package/mcp/web-scraper/README.md +0 -475
  1170. package/mcp/web-scraper/SETUP.md +0 -150
  1171. package/mcp/web-scraper/__init__.py +0 -3
  1172. package/mcp/web-scraper/chatgpt_scraper_mcp_server.py +0 -435
  1173. package/mcp/web-scraper/create_repo.sh +0 -50
  1174. package/mcp/web-scraper/imports/spotify/playlist_3i0FY58V7n8XIUyWDm3AYA.json +0 -1052
  1175. package/mcp/web-scraper/nytimes_article.json +0 -7
  1176. package/mcp/web-scraper/plugins/__init__.py +0 -3
  1177. package/mcp/web-scraper/plugins/chatgpt_scraper.py +0 -105
  1178. package/mcp/web-scraper/plugins/metacast_scraper.py +0 -828
  1179. package/mcp/web-scraper/plugins/nyt_podcast_scraper.py +0 -538
  1180. package/mcp/web-scraper/plugins/spotify_scraper.py +0 -618
  1181. package/mcp/web-scraper/plugins/twitter_scraper.py +0 -576
  1182. package/mcp/web-scraper/plugins/url_body_fetcher.py +0 -172
  1183. package/mcp/web-scraper/pytest.ini +0 -11
  1184. package/mcp/web-scraper/requirements-test.txt +0 -6
  1185. package/mcp/web-scraper/requirements.txt +0 -6
  1186. package/mcp/web-scraper/run-web-scraper-mcp.sh +0 -38
  1187. package/mcp/web-scraper/scrape_spotify_playlist.py +0 -77
  1188. package/mcp/web-scraper/scraper.py +0 -819
  1189. package/mcp/web-scraper/scraper_base.py +0 -88
  1190. package/mcp/web-scraper/scraper_registry.py +0 -32
  1191. package/mcp/web-scraper/scripts/scrape_tweet_and_verify_referenced.py +0 -65
  1192. package/mcp/web-scraper/store_songs_to_parquet.py +0 -120
  1193. package/mcp/web-scraper/tests/__init__.py +0 -0
  1194. package/mcp/web-scraper/tests/conftest.py +0 -40
  1195. package/mcp/web-scraper/tests/integration/__init__.py +0 -0
  1196. package/mcp/web-scraper/tests/unit/__init__.py +0 -0
  1197. package/mcp/web-scraper/tests/unit/test_source_detection.py +0 -60
  1198. package/mcp/web-scraper/web_scraper_mcp_server.py +0 -639
  1199. package/openapi.yaml +0 -2071
  1200. package/playwright/fixtures/servers.ts +0 -180
  1201. package/playwright/global_setup.ts +0 -3
  1202. package/playwright/tests/auto-enhancement.spec.ts +0 -370
  1203. package/playwright/tests/coverage-map.json +0 -135
  1204. package/playwright/tests/design-system.spec.ts +0 -216
  1205. package/playwright/tests/entity-detail.spec.ts +0 -268
  1206. package/playwright/tests/entity-list.spec.ts +0 -266
  1207. package/playwright/tests/floating-settings-button.spec.ts +0 -95
  1208. package/playwright/tests/graph-integrity.spec.ts +0 -344
  1209. package/playwright/tests/helpers.ts +0 -560
  1210. package/playwright/tests/interpretations.spec.ts +0 -285
  1211. package/playwright/tests/mcp-configuration.spec.ts +0 -208
  1212. package/playwright/tests/mcp-relationships.spec.ts +0 -631
  1213. package/playwright/tests/mcp-store-retrieve.spec.ts +0 -288
  1214. package/playwright/tests/not-found.spec.ts +0 -30
  1215. package/playwright/tests/oauth-flow.spec.ts +0 -790
  1216. package/playwright/tests/observations.spec.ts +0 -295
  1217. package/playwright/tests/relationship-detail.spec.ts +0 -305
  1218. package/playwright/tests/relationships-list.spec.ts +0 -275
  1219. package/playwright/tests/schema-detail.spec.ts +0 -300
  1220. package/playwright/tests/schemas-list.spec.ts +0 -262
  1221. package/playwright/tests/search-flow.spec.ts +0 -216
  1222. package/playwright/tests/site-page.spec.ts +0 -23
  1223. package/playwright/tests/source-detail.spec.ts +0 -300
  1224. package/playwright/tests/sources-list.spec.ts +0 -254
  1225. package/playwright/tests/upload-flow.spec.ts +0 -279
  1226. package/playwright/tsconfig.json +0 -17
  1227. package/playwright/types.d.ts +0 -14
  1228. package/playwright/utils/servers.ts +0 -435
  1229. package/playwright.config.ts +0 -77
  1230. package/postcss.config.mjs +0 -7
  1231. package/scripts/add_ngrok_mapping.py +0 -99
  1232. package/scripts/add_required_observation_fields.js +0 -96
  1233. package/scripts/add_required_source_fields.js +0 -95
  1234. package/scripts/analyze-data-dir-schemas.js +0 -256
  1235. package/scripts/analyze_data_dir_for_schemas.ts +0 -378
  1236. package/scripts/analyze_low_confidence_fields.ts +0 -235
  1237. package/scripts/analyze_schema_redundancies.ts +0 -228
  1238. package/scripts/apply_documentation_rules.sh +0 -81
  1239. package/scripts/apply_file_naming_convention.sh +0 -75
  1240. package/scripts/backfill_entity_embeddings.ts +0 -95
  1241. package/scripts/branch.js +0 -47
  1242. package/scripts/build_github_pages_site.tsx +0 -65
  1243. package/scripts/check-playwright-coverage.ts +0 -159
  1244. package/scripts/check_agent_conversations.js +0 -72
  1245. package/scripts/check_agent_status.js +0 -156
  1246. package/scripts/check_auto_enhancement_status.ts +0 -215
  1247. package/scripts/check_auto_test_schemas.ts +0 -43
  1248. package/scripts/check_claude_sync.sh +0 -35
  1249. package/scripts/check_raw_fragments.ts +0 -46
  1250. package/scripts/check_remaining_eligibility.ts +0 -46
  1251. package/scripts/check_remaining_fields.ts +0 -58
  1252. package/scripts/check_sendgrid_credits.sh +0 -122
  1253. package/scripts/check_sendgrid_email_logs.sh +0 -150
  1254. package/scripts/check_snapshot_schema.ts +0 -18
  1255. package/scripts/check_sources.ts +0 -34
  1256. package/scripts/check_stale_snapshots.ts +0 -80
  1257. package/scripts/cleanup-auto-test-schemas.ts +0 -80
  1258. package/scripts/cleanup_test_schemas.ts +0 -275
  1259. package/scripts/com.neotoma.dev-servers.plist.template +0 -27
  1260. package/scripts/com.neotoma.watch-build.plist.template +0 -27
  1261. package/scripts/complete_submodule_setup.sh +0 -101
  1262. package/scripts/configure_sendgrid_dns.sh +0 -162
  1263. package/scripts/copy-env-to-worktree.js +0 -109
  1264. package/scripts/copy_pdf_worker_wrapper.js +0 -19
  1265. package/scripts/create_sample_parquet_files.py +0 -120
  1266. package/scripts/create_sample_parquet_files.ts +0 -146
  1267. package/scripts/create_sample_parquet_files_mcp.ts +0 -196
  1268. package/scripts/create_sample_parquet_files_simple.sh +0 -132
  1269. package/scripts/cursor-worktree-init.sh +0 -24
  1270. package/scripts/debug-ssl.sh +0 -86
  1271. package/scripts/debug_pdf_extraction.ts +0 -69
  1272. package/scripts/debug_vec_knn.ts +0 -69
  1273. package/scripts/dev-proxy.js +0 -406
  1274. package/scripts/dev-serve.js +0 -349
  1275. package/scripts/disable-dns.sh +0 -47
  1276. package/scripts/doctor.ts +0 -97
  1277. package/scripts/export_schema_snapshots.ts +0 -253
  1278. package/scripts/fix-ssl-cert.sh +0 -72
  1279. package/scripts/fix_mcp_phase1_tests.sh +0 -51
  1280. package/scripts/fix_observation_column_names.js +0 -51
  1281. package/scripts/fix_observation_priority_ordering.js +0 -45
  1282. package/scripts/fix_observation_properties_to_fields.js +0 -48
  1283. package/scripts/fix_sqlite_schema_mismatch.js +0 -75
  1284. package/scripts/generate-dev-cert.sh +0 -69
  1285. package/scripts/generate_pdf_fixtures.ts +0 -330
  1286. package/scripts/generate_schema_icons.ts +0 -216
  1287. package/scripts/get_branch_ports.js +0 -56
  1288. package/scripts/get_mcp_token.sh +0 -47
  1289. package/scripts/get_secrets_for_agents.js +0 -45
  1290. package/scripts/ingest_data_dir.ts +0 -215
  1291. package/scripts/ingest_finances_data.ts +0 -255
  1292. package/scripts/initialize-schemas.ts +0 -350
  1293. package/scripts/install_launchd_dev_servers.js +0 -54
  1294. package/scripts/install_launchd_watch_build.js +0 -53
  1295. package/scripts/instruct_agents_credential_setup.js +0 -130
  1296. package/scripts/instruct_agents_env_check.js +0 -99
  1297. package/scripts/instruct_agents_run_tests_until_passing.js +0 -128
  1298. package/scripts/kill_port.js +0 -174
  1299. package/scripts/linters/sync_agent_instructions_pre_commit.sh +0 -34
  1300. package/scripts/manage_error_debugging.sh +0 -228
  1301. package/scripts/manually_queue_enhancements.ts +0 -156
  1302. package/scripts/merge-dev.js +0 -319
  1303. package/scripts/migrate_auto_enhanced_fields.ts +0 -83
  1304. package/scripts/migrate_env_to_secrets.js +0 -69
  1305. package/scripts/migrate_plans.ts +0 -870
  1306. package/scripts/monitor_and_fix_snapshots.ts +0 -165
  1307. package/scripts/move_docs_rules_to_cursor.js +0 -54
  1308. package/scripts/move_docs_rules_to_cursor.sh +0 -24
  1309. package/scripts/neotoma-npm-reserve/README.md +0 -8
  1310. package/scripts/neotoma-npm-reserve/package.json +0 -10
  1311. package/scripts/notify_agents_env_vars.js +0 -109
  1312. package/scripts/notify_agents_setup_script.js +0 -148
  1313. package/scripts/notify_running_agents_credentials.js +0 -177
  1314. package/scripts/pdf_worker_polyfill.mjs +0 -27
  1315. package/scripts/pick-port.js +0 -108
  1316. package/scripts/postinstall.js +0 -84
  1317. package/scripts/process_remaining_eligible.ts +0 -70
  1318. package/scripts/prototypes/run-prototype.sh +0 -40
  1319. package/scripts/prune-merged-branches.js +0 -115
  1320. package/scripts/recompute_bob.ts +0 -64
  1321. package/scripts/recompute_snapshots.ts +0 -72
  1322. package/scripts/release_orchestrator.js +0 -1995
  1323. package/scripts/remove_duplicate_source_fields.js +0 -61
  1324. package/scripts/rename-branch-from-commit.js +0 -111
  1325. package/scripts/respawn_agents_with_credentials.js +0 -358
  1326. package/scripts/respawn_single_agent.js +0 -324
  1327. package/scripts/run-dev-server-with-tunnel-url.sh +0 -16
  1328. package/scripts/run-dev-task.js +0 -160
  1329. package/scripts/run_dev_servers_launchd.sh +0 -14
  1330. package/scripts/run_integration_tests.js +0 -523
  1331. package/scripts/run_migrations.js +0 -55
  1332. package/scripts/run_neotoma_mcp_stdio.sh +0 -11
  1333. package/scripts/run_neotoma_mcp_stdio_dev_watch.sh +0 -10
  1334. package/scripts/run_neotoma_mcp_stdio_prod.sh +0 -11
  1335. package/scripts/run_neotoma_mcp_stdio_prod_watch.sh +0 -12
  1336. package/scripts/run_watch_build_launchd.sh +0 -18
  1337. package/scripts/scrape_nytimes_article.py +0 -182
  1338. package/scripts/scrape_nytimes_simple.py +0 -152
  1339. package/scripts/secrets_manager.js +0 -232
  1340. package/scripts/send_agent_followup.js +0 -136
  1341. package/scripts/setup-data-symlink.js +0 -88
  1342. package/scripts/setup-dns.sh +0 -54
  1343. package/scripts/setup-env-copy-hook.sh +0 -67
  1344. package/scripts/setup-foundation-symlink.js +0 -45
  1345. package/scripts/setup-https-tunnel.sh +0 -409
  1346. package/scripts/setup-test-env.sh +0 -18
  1347. package/scripts/setup_agent_credentials.sh +0 -27
  1348. package/scripts/setup_agent_environment.sh +0 -39
  1349. package/scripts/setup_claude_instructions.sh +0 -437
  1350. package/scripts/setup_cloudflare_email_routing.sh +0 -158
  1351. package/scripts/setup_shared_submodule.sh +0 -100
  1352. package/scripts/simulate_npm_install.js +0 -70
  1353. package/scripts/spec_compliance_patterns.js +0 -260
  1354. package/scripts/sync-env-from-1password.sh +0 -100
  1355. package/scripts/sync_mcp_configs.js +0 -106
  1356. package/scripts/test-base64-store.ts +0 -53
  1357. package/scripts/test-error-handling.ts +0 -44
  1358. package/scripts/test-file-path-store.ts +0 -142
  1359. package/scripts/test-raw-fragments-idempotence.ts +0 -157
  1360. package/scripts/test-raw-fragments-insert.ts +0 -88
  1361. package/scripts/test-store-response-structure.ts +0 -125
  1362. package/scripts/test-store-structured-response.ts +0 -126
  1363. package/scripts/test_agent_env_spawn.js +0 -82
  1364. package/scripts/test_confidence.ts +0 -36
  1365. package/scripts/test_dsnp_parquet_reading.ts +0 -72
  1366. package/scripts/test_mcp_semantic_search.ts +0 -36
  1367. package/scripts/test_parquet_ingestion.ts +0 -52
  1368. package/scripts/test_raw_fragments_in_response.ts +0 -31
  1369. package/scripts/test_sendgrid_smtp.sh +0 -45
  1370. package/scripts/test_store_parquet_via_mcp.ts +0 -66
  1371. package/scripts/trigger_error_debug_cli.js +0 -271
  1372. package/scripts/unblock_agents.js +0 -208
  1373. package/scripts/validate-coverage-map.ts +0 -187
  1374. package/scripts/validate-doc-dependencies.js +0 -410
  1375. package/scripts/validate_all_fu_compliance.js +0 -752
  1376. package/scripts/validate_schema_sync.ts +0 -135
  1377. package/scripts/validate_spec_compliance.js +0 -669
  1378. package/scripts/watch_site.js +0 -68
  1379. package/scripts/wipe-local-database.js +0 -191
  1380. package/scripts/with_branch_ports.js +0 -496
  1381. package/site_pages/.nojekyll +0 -0
  1382. package/site_pages/FAVICON_CANDIDATES.md +0 -22
  1383. package/site_pages/favicon-1-diamond.svg +0 -3
  1384. package/site_pages/favicon-2-n-box.svg +0 -10
  1385. package/site_pages/favicon-3-waves.svg +0 -3
  1386. package/site_pages/favicon-4-n-minimal.svg +0 -3
  1387. package/site_pages/favicon-5-bars.svg +0 -5
  1388. package/site_pages/favicon.svg +0 -10
  1389. package/site_pages/index.html +0 -40
  1390. package/site_pages/robots.txt +0 -4
  1391. package/site_pages/sitemap.xml +0 -5
  1392. package/src/actions.ts +0 -4468
  1393. package/src/cli/agent_instructions_scan.ts +0 -793
  1394. package/src/cli/bootstrap.ts +0 -35
  1395. package/src/cli/config.ts +0 -338
  1396. package/src/cli/format.ts +0 -337
  1397. package/src/cli/index.ts +0 -11417
  1398. package/src/cli/init_abort.ts +0 -7
  1399. package/src/cli/mcp_config_scan.ts +0 -1359
  1400. package/src/cli/pack_rat.ts +0 -134
  1401. package/src/config/record_types.ts +0 -562
  1402. package/src/config.ts +0 -164
  1403. package/src/crypto/agent_identity.ts +0 -46
  1404. package/src/crypto/auth.ts +0 -110
  1405. package/src/crypto/column_encryption.ts +0 -109
  1406. package/src/crypto/crypto.test.ts +0 -311
  1407. package/src/crypto/envelope.ts +0 -240
  1408. package/src/crypto/export.ts +0 -131
  1409. package/src/crypto/index.ts +0 -13
  1410. package/src/crypto/key_derivation.ts +0 -176
  1411. package/src/crypto/keys.ts +0 -85
  1412. package/src/crypto/mcp_auth_token.ts +0 -35
  1413. package/src/crypto/signature.ts +0 -50
  1414. package/src/crypto/types.ts +0 -48
  1415. package/src/db.ts +0 -66
  1416. package/src/embeddings.ts +0 -76
  1417. package/src/index.ts +0 -25
  1418. package/src/mcp_ws_bridge.ts +0 -222
  1419. package/src/middleware/encrypt_response.ts +0 -39
  1420. package/src/normalize.ts +0 -351
  1421. package/src/record_types.test.ts +0 -36
  1422. package/src/reducers/index.ts +0 -5
  1423. package/src/reducers/observation_reducer.ts +0 -458
  1424. package/src/reducers/relationship_reducer.ts +0 -291
  1425. package/src/repositories/db/capability_repo.ts +0 -29
  1426. package/src/repositories/file/capability_repo.ts +0 -29
  1427. package/src/repositories/index.ts +0 -7
  1428. package/src/repositories/interfaces.ts +0 -112
  1429. package/src/repositories/sqlite/__tests__/local_db_adapter.test.ts +0 -138
  1430. package/src/repositories/sqlite/local_db_adapter.ts +0 -961
  1431. package/src/repositories/sqlite/sqlite_client.ts +0 -378
  1432. package/src/server.ts +0 -6157
  1433. package/src/services/__tests__/csv_chunking.test.ts +0 -125
  1434. package/src/services/__tests__/deletion.test.ts +0 -358
  1435. package/src/services/__tests__/entity_semantic_search.test.ts +0 -45
  1436. package/src/services/__tests__/local_auth.test.ts +0 -52
  1437. package/src/services/__tests__/local_entity_embedding.test.ts +0 -108
  1438. package/src/services/__tests__/mcp_oauth.test.ts +0 -407
  1439. package/src/services/__tests__/oauth_key_gate.test.ts +0 -50
  1440. package/src/services/__tests__/oauth_state.test.ts +0 -40
  1441. package/src/services/__tests__/schema_icon_service.test.ts +0 -151
  1442. package/src/services/auto_enhancement_processor.ts +0 -237
  1443. package/src/services/capability_registry.ts +0 -202
  1444. package/src/services/correction.ts +0 -87
  1445. package/src/services/csv_chunking.ts +0 -128
  1446. package/src/services/csv_row_extraction.ts +0 -124
  1447. package/src/services/dashboard_stats.ts +0 -115
  1448. package/src/services/deletion.ts +0 -482
  1449. package/src/services/deletion_monitor.ts +0 -314
  1450. package/src/services/encryption_service.ts +0 -110
  1451. package/src/services/entity_merge.ts +0 -100
  1452. package/src/services/entity_queries.ts +0 -518
  1453. package/src/services/entity_resolution.ts +0 -367
  1454. package/src/services/entity_semantic_search.ts +0 -64
  1455. package/src/services/entity_snapshot_embedding.ts +0 -115
  1456. package/src/services/field_canonicalization.ts +0 -393
  1457. package/src/services/field_converters.ts +0 -173
  1458. package/src/services/field_validation.ts +0 -173
  1459. package/src/services/file_text_extraction.ts +0 -213
  1460. package/src/services/finances_field_mapping.ts +0 -473
  1461. package/src/services/gdpr_deletion.ts +0 -497
  1462. package/src/services/interpretation.ts +0 -939
  1463. package/src/services/llm_extraction.ts +0 -548
  1464. package/src/services/local_auth.ts +0 -154
  1465. package/src/services/local_entity_embedding.ts +0 -196
  1466. package/src/services/mcp_auth.ts +0 -75
  1467. package/src/services/mcp_oauth.ts +0 -1625
  1468. package/src/services/mcp_oauth_errors.ts +0 -139
  1469. package/src/services/oauth_key_gate.ts +0 -116
  1470. package/src/services/oauth_state.ts +0 -70
  1471. package/src/services/observation_identity.ts +0 -161
  1472. package/src/services/observation_storage.ts +0 -162
  1473. package/src/services/parquet_reader.ts +0 -375
  1474. package/src/services/public_key_registry.ts +0 -103
  1475. package/src/services/raw_fragments.ts +0 -217
  1476. package/src/services/raw_storage.ts +0 -267
  1477. package/src/services/relationships.ts +0 -495
  1478. package/src/services/schema_definitions.ts +0 -2041
  1479. package/src/services/schema_icon_service.ts +0 -260
  1480. package/src/services/schema_inference.ts +0 -401
  1481. package/src/services/schema_recommendation.ts +0 -1475
  1482. package/src/services/schema_registry.ts +0 -1403
  1483. package/src/services/snapshot_computation.ts +0 -92
  1484. package/src/services/source_identity.ts +0 -22
  1485. package/src/services/timeline_events.ts +0 -198
  1486. package/src/shared/action_handlers/entity_handlers.ts +0 -115
  1487. package/src/shared/action_schemas.test.ts +0 -59
  1488. package/src/shared/action_schemas.ts +0 -317
  1489. package/src/shared/api_client.ts +0 -86
  1490. package/src/shared/contract_mappings.ts +0 -646
  1491. package/src/shared/entity_display_name.ts +0 -64
  1492. package/src/shared/local_transport.ts +0 -126
  1493. package/src/shared/openapi_schema.ts +0 -175
  1494. package/src/shared/openapi_types.ts +0 -2810
  1495. package/src/shared/record_display_summary.ts +0 -133
  1496. package/src/utils/__tests__/csv_summary.test.ts +0 -53
  1497. package/src/utils/__tests__/lucide_icons.test.ts +0 -133
  1498. package/src/utils/chat.test.ts +0 -42
  1499. package/src/utils/chat.ts +0 -35
  1500. package/src/utils/csv.test.ts +0 -41
  1501. package/src/utils/csv.ts +0 -77
  1502. package/src/utils/csv_summary.ts +0 -195
  1503. package/src/utils/log_encrypt.ts +0 -144
  1504. package/src/utils/logger.ts +0 -94
  1505. package/src/utils/lucide_icons.ts +0 -279
  1506. package/src/utils/property_keys.test.ts +0 -109
  1507. package/src/utils/property_keys.ts +0 -66
  1508. package/src/utils/property_sanitizer.test.ts +0 -105
  1509. package/src/utils/property_sanitizer.ts +0 -135
  1510. package/src/version_check.test.ts +0 -107
  1511. package/src/version_check.ts +0 -58
  1512. package/supabase/.temp/cli-latest +0 -0
  1513. package/tailwind.config.mjs +0 -134
  1514. package/tests/TEST_ACTION_MATRIX.md +0 -387
  1515. package/tests/agent/mcp_instruction_behavior.test.ts +0 -72
  1516. package/tests/agent/runner/agent_runner.ts +0 -27
  1517. package/tests/agent/runner/claude_code_runner.ts +0 -128
  1518. package/tests/agent/runner/cursor_cli_runner.ts +0 -7
  1519. package/tests/cli/api_client_offline_fallback.test.ts +0 -89
  1520. package/tests/cli/cli_admin_commands.test.ts +0 -268
  1521. package/tests/cli/cli_api_commands.test.ts +0 -75
  1522. package/tests/cli/cli_auth_commands.test.ts +0 -67
  1523. package/tests/cli/cli_command_coverage_guard.test.ts +0 -50
  1524. package/tests/cli/cli_correction_commands.test.ts +0 -277
  1525. package/tests/cli/cli_direct_invocation_parity.test.ts +0 -46
  1526. package/tests/cli/cli_entity_commands.test.ts +0 -324
  1527. package/tests/cli/cli_entity_subcommands.test.ts +0 -422
  1528. package/tests/cli/cli_infra_commands.test.ts +0 -475
  1529. package/tests/cli/cli_mcp_commands.test.ts +0 -51
  1530. package/tests/cli/cli_observation_commands.test.ts +0 -232
  1531. package/tests/cli/cli_query_commands.test.ts +0 -369
  1532. package/tests/cli/cli_relationship_commands.test.ts +0 -410
  1533. package/tests/cli/cli_schema_commands.test.ts +0 -296
  1534. package/tests/cli/cli_session_startup_ux.test.ts +0 -112
  1535. package/tests/cli/cli_smoke.test.ts +0 -456
  1536. package/tests/cli/cli_source_commands.test.ts +0 -214
  1537. package/tests/cli/cli_stats_commands.test.ts +0 -51
  1538. package/tests/cli/cli_store_commands.test.ts +0 -339
  1539. package/tests/cli/cli_timeline_commands.test.ts +0 -294
  1540. package/tests/cli/config.test.ts +0 -36
  1541. package/tests/cli/config_api_discovery.test.ts +0 -91
  1542. package/tests/cli/test_command_detection.test.ts +0 -128
  1543. package/tests/cli/test_debug_tty.test.ts +0 -32
  1544. package/tests/contract/contract_mapping.test.ts +0 -131
  1545. package/tests/contract/contract_mcp_cli_parity.test.ts +0 -223
  1546. package/tests/contract/openapi_schema.test.ts +0 -15
  1547. package/tests/fixtures/README.md +0 -22
  1548. package/tests/fixtures/agent_mcp/insurance_policy.txt +0 -5
  1549. package/tests/fixtures/agent_mcp_cases.json +0 -137
  1550. package/tests/fixtures/csv/sample_balances.csv +0 -7
  1551. package/tests/fixtures/csv/sample_contacts.csv +0 -6
  1552. package/tests/fixtures/csv/sample_crypto_transactions.csv +0 -6
  1553. package/tests/fixtures/csv/sample_flows.csv +0 -7
  1554. package/tests/fixtures/csv/sample_holdings.csv +0 -7
  1555. package/tests/fixtures/csv/sample_income.csv +0 -7
  1556. package/tests/fixtures/csv/sample_purchases.csv +0 -7
  1557. package/tests/fixtures/csv/sample_tax_events.csv +0 -7
  1558. package/tests/fixtures/csv/sample_transactions.csv +0 -7
  1559. package/tests/fixtures/csv/sample_transfers.csv +0 -6
  1560. package/tests/fixtures/expected/contact_snapshot.json +0 -19
  1561. package/tests/fixtures/expected/transaction_snapshot.json +0 -21
  1562. package/tests/fixtures/helpers.ts +0 -522
  1563. package/tests/fixtures/json/account.json +0 -63
  1564. package/tests/fixtures/json/argument.json +0 -39
  1565. package/tests/fixtures/json/balance.json +0 -56
  1566. package/tests/fixtures/json/belief.json +0 -44
  1567. package/tests/fixtures/json/contact.json +0 -83
  1568. package/tests/fixtures/json/contract.json +0 -62
  1569. package/tests/fixtures/json/crypto_transaction.json +0 -67
  1570. package/tests/fixtures/json/domain.json +0 -41
  1571. package/tests/fixtures/json/emotion.json +0 -31
  1572. package/tests/fixtures/json/fixed_cost.json +0 -75
  1573. package/tests/fixtures/json/flow.json +0 -71
  1574. package/tests/fixtures/json/habit.json +0 -54
  1575. package/tests/fixtures/json/habit_completion.json +0 -31
  1576. package/tests/fixtures/json/habit_objective.json +0 -40
  1577. package/tests/fixtures/json/holding.json +0 -65
  1578. package/tests/fixtures/json/income.json +0 -59
  1579. package/tests/fixtures/json/liability.json +0 -50
  1580. package/tests/fixtures/json/order.json +0 -62
  1581. package/tests/fixtures/json/outcome.json +0 -56
  1582. package/tests/fixtures/json/process.json +0 -43
  1583. package/tests/fixtures/json/property.json +0 -52
  1584. package/tests/fixtures/json/purchase.json +0 -66
  1585. package/tests/fixtures/json/research.json +0 -53
  1586. package/tests/fixtures/json/strategy.json +0 -68
  1587. package/tests/fixtures/json/task_attachment.json +0 -62
  1588. package/tests/fixtures/json/task_comment.json +0 -54
  1589. package/tests/fixtures/json/task_dependency.json +0 -51
  1590. package/tests/fixtures/json/task_story.json +0 -53
  1591. package/tests/fixtures/json/tax_event.json +0 -60
  1592. package/tests/fixtures/json/tax_filing.json +0 -61
  1593. package/tests/fixtures/json/transaction.json +0 -62
  1594. package/tests/fixtures/json/transfer.json +0 -60
  1595. package/tests/fixtures/json/wallet.json +0 -51
  1596. package/tests/fixtures/json/workout.json +0 -45
  1597. package/tests/fixtures/pdf/sample-upload.txt +0 -2
  1598. package/tests/fixtures/pdf/sample_bank_statement.md +0 -32
  1599. package/tests/fixtures/pdf/sample_bank_statement.pdf +0 -0
  1600. package/tests/fixtures/pdf/sample_contract.md +0 -27
  1601. package/tests/fixtures/pdf/sample_contract.pdf +0 -0
  1602. package/tests/fixtures/pdf/sample_exercise.md +0 -31
  1603. package/tests/fixtures/pdf/sample_exercise.pdf +0 -0
  1604. package/tests/fixtures/pdf/sample_holding_statement.md +0 -29
  1605. package/tests/fixtures/pdf/sample_holding_statement.pdf +0 -0
  1606. package/tests/fixtures/pdf/sample_invoice.md +0 -27
  1607. package/tests/fixtures/pdf/sample_invoice.pdf +0 -108
  1608. package/tests/fixtures/pdf/sample_meal.md +0 -28
  1609. package/tests/fixtures/pdf/sample_meal.pdf +0 -111
  1610. package/tests/fixtures/pdf/sample_note.md +0 -28
  1611. package/tests/fixtures/pdf/sample_note.pdf +0 -0
  1612. package/tests/fixtures/pdf/sample_receipt.md +0 -28
  1613. package/tests/fixtures/pdf/sample_receipt.pdf +0 -0
  1614. package/tests/fixtures/pdf/sample_research.md +0 -31
  1615. package/tests/fixtures/pdf/sample_research.pdf +0 -0
  1616. package/tests/fixtures/pdf/sample_tax_form.md +0 -38
  1617. package/tests/fixtures/pdf/sample_tax_form.pdf +0 -0
  1618. package/tests/fixtures/pdf/sample_transaction_receipt.md +0 -28
  1619. package/tests/fixtures/pdf/sample_transaction_receipt.pdf +0 -0
  1620. package/tests/fixtures/replay_graph.test.ts +0 -125
  1621. package/tests/fixtures/sample_invoice.pdf +0 -1
  1622. package/tests/fixtures/types.ts +0 -321
  1623. package/tests/fixtures/validation.ts +0 -333
  1624. package/tests/helpers/cleanup_helpers.ts +0 -550
  1625. package/tests/helpers/create_test_parquet.ts +0 -187
  1626. package/tests/helpers/cross_layer_helpers.ts +0 -130
  1627. package/tests/helpers/mcp_action_helper.ts +0 -55
  1628. package/tests/helpers/mcp_spec_validators.ts +0 -433
  1629. package/tests/helpers/test_data_helpers.ts +0 -226
  1630. package/tests/helpers/test_schema_helpers.ts +0 -264
  1631. package/tests/integration/cli_to_mcp_entities.test.ts +0 -211
  1632. package/tests/integration/cli_to_mcp_relationships.test.ts +0 -196
  1633. package/tests/integration/cli_to_mcp_schemas.test.ts +0 -232
  1634. package/tests/integration/cli_to_mcp_stats_snapshots.test.ts +0 -67
  1635. package/tests/integration/cli_to_mcp_store.test.ts +0 -249
  1636. package/tests/integration/dashboard_stats.test.ts +0 -180
  1637. package/tests/integration/entity_queries.test.ts +0 -666
  1638. package/tests/integration/field_converters.test.ts +0 -266
  1639. package/tests/integration/fixture_mcp_store_replay.test.ts +0 -255
  1640. package/tests/integration/gdpr_deletion.test.ts +0 -433
  1641. package/tests/integration/llm_extraction.test.ts +0 -554
  1642. package/tests/integration/mcp_actions_matrix.test.ts +0 -969
  1643. package/tests/integration/mcp_auto_enhancement.test.ts +0 -659
  1644. package/tests/integration/mcp_auto_schema_creation.test.ts +0 -658
  1645. package/tests/integration/mcp_correction_variations.test.ts +0 -641
  1646. package/tests/integration/mcp_entity_creation.test.ts +0 -333
  1647. package/tests/integration/mcp_entity_variations.test.ts +0 -474
  1648. package/tests/integration/mcp_graph_variations.test.ts +0 -380
  1649. package/tests/integration/mcp_npm_check_update.test.ts +0 -54
  1650. package/tests/integration/mcp_query_variations.test.ts +0 -392
  1651. package/tests/integration/mcp_relationship_variations.test.ts +0 -433
  1652. package/tests/integration/mcp_resource_variations.test.ts +0 -423
  1653. package/tests/integration/mcp_resources.test.ts +0 -452
  1654. package/tests/integration/mcp_schema_actions.test.ts +0 -673
  1655. package/tests/integration/mcp_schema_variations.test.ts +0 -428
  1656. package/tests/integration/mcp_store_parquet.test.ts +0 -466
  1657. package/tests/integration/mcp_store_unstructured.test.ts +0 -413
  1658. package/tests/integration/mcp_store_variations.test.ts +0 -452
  1659. package/tests/integration/nonjson_csv_store_behavior.test.ts +0 -348
  1660. package/tests/integration/nonjson_fixtures_mcp_replay.test.ts +0 -253
  1661. package/tests/integration/observation_ingestion.test.ts +0 -362
  1662. package/tests/integration/payload/payload_submission.test.ts +0 -296
  1663. package/tests/integration/payload_compiler.test.ts +0 -347
  1664. package/tests/integration/public_key_registry.test.ts +0 -204
  1665. package/tests/integration/relationship_snapshots.test.ts +0 -235
  1666. package/tests/integration/schema_recommendation_integration.test.ts +0 -418
  1667. package/tests/integration/setup_v0.2.0_schemas.ts +0 -61
  1668. package/tests/integration/v0.2.0_ingestion.test.ts +0 -527
  1669. package/tests/services/auto_enhancement_converter_detection.test.ts +0 -663
  1670. package/tests/services/auto_enhancement_processor.test.ts +0 -445
  1671. package/tests/services/capability_registry.test.ts +0 -254
  1672. package/tests/services/converter_detection_unit.test.ts +0 -168
  1673. package/tests/services/encryption_service.test.ts +0 -147
  1674. package/tests/services/entity_resolution.test.ts +0 -285
  1675. package/tests/services/field_canonicalization.test.ts +0 -215
  1676. package/tests/services/field_converters.test.ts +0 -211
  1677. package/tests/services/field_validation.test.ts +0 -318
  1678. package/tests/services/finances_field_mapping.test.ts +0 -245
  1679. package/tests/services/interpretation.test.ts +0 -144
  1680. package/tests/services/mcp_auth.test.ts +0 -34
  1681. package/tests/services/observation_identity.test.ts +0 -154
  1682. package/tests/services/payload_identity.test.ts +0 -325
  1683. package/tests/services/payload_schema.test.ts +0 -282
  1684. package/tests/services/raw_storage.test.ts +0 -546
  1685. package/tests/services/schema_definitions.test.ts +0 -119
  1686. package/tests/services/schema_recommendation.test.ts +0 -590
  1687. package/tests/services/schema_registry_incremental.test.ts +0 -882
  1688. package/tests/services/summary.test.ts +0 -26
  1689. package/tests/unit/bigint_serialization.test.ts +0 -220
  1690. package/tests/unit/observation_reducer_converters.test.ts +0 -430
  1691. package/tests/unit/parquet_reader.test.ts +0 -155
  1692. package/tests/unit/relationship_reducer.test.ts +0 -208
  1693. package/tests/unit/schema_inference.test.ts +0 -358
  1694. package/tests/unit/seo_metadata.test.ts +0 -52
  1695. package/tsconfig.json +0 -22
  1696. package/vite.config.ts +0 -165
  1697. package/vitest.config.ts +0 -111
  1698. package/vitest.global_setup.ts +0 -42
  1699. package/vitest.setup.ts +0 -89
@@ -1,1821 +0,0 @@
1
- # Neotoma MVP Feature Units — Execution Plan
2
- ## Scope
3
- This document covers:
4
- - Complete inventory of MVP Feature Units (estimated 25-30)
5
- - Execution order with dependencies
6
- - Priority classification (P0 critical, P1 high, P2 medium)
7
- - Estimated complexity and risk level
8
- - Completion criteria for MVP launch
9
- This document does NOT cover:
10
- - Detailed Feature Unit specs (those go in `docs/feature_units/completed/`)
11
- - Post-MVP features
12
- - Agentic Portfolio or Agentic Wallet features
13
- ## MVP Completion Criteria
14
- **MVP is complete when:**
15
- 1. ✅ All P0 and P1 Feature Units deployed
16
- 2. ✅ Core workflows functional (upload → extraction → timeline → AI query)
17
- 3. ✅ Acceptance criteria met (see `docs/specs/METRICS_REQUIREMENTS.md`)
18
- 4. ✅ All critical path tests passing (100% coverage)
19
- 5. ✅ Onboarding flow complete
20
- 6. ✅ MCP server operational with all 8 MVP actions (Plaid actions moved to post-MVP)
21
- 7. ✅ Multi-user support (auth + RLS) enables Tier 1 small teams (2–20 people)
22
- 8. ✅ Local storage / offline mode functional (local-first architecture)
23
- **Revenue Alignment:** MVP must support Tier 1 ICPs including small teams to enable mid-market ACVs (€3k–€15k/yr or €250–€1,250 MRR). See [`docs/private/strategy_governance/revenue_timeline.md`](../private/strategy_governance/revenue_timeline.md) for revenue objectives.
24
- ## Release Strategy
25
- **Internal MCP Release (Pre-MVP):**
26
- An internal, MCP-only release precedes the full MVP. This release includes:
27
- - Core backend services (file analysis, entity resolution, event generation, graph builder, search)
28
- - 6 core MCP actions (store_record, retrieve_records, update_record, delete_record, upload_file, get_file_url)
29
- - Single-user database (no RLS, no auth)
30
- - No UI components
31
- **Purpose:** Validate core capabilities via MCP integration with Cursor and ChatGPT before building UI and multi-user infrastructure.
32
- See [`docs/specs/INTERNAL_MCP_RELEASE.md`](./INTERNAL_MCP_RELEASE.md) for complete specification.
33
- **Full MVP (v1.0.0):**
34
- Adds UI layer, multi-user support (auth + RLS), billing, onboarding, and provider integrations on top of the validated MCP foundation.
35
- ## Execution Order and Dependencies
36
- ### Phase 0: Foundation (Infrastructure)
37
- **Goal:** Core infrastructure and database schema.
38
- #### FU-000: Database Schema v1.0
39
- - **Priority:** P0 (Critical)
40
- - **Risk:** High (foundational)
41
- - **Complexity:** Medium
42
- - **Dependencies:** None
43
- - **Deliverables:**
44
- - Database schema with `records`, `record_relationships`, `plaid_items`, `plaid_sync_runs`, `external_connectors`, `external_sync_runs` tables
45
- - RLS policies
46
- - Indexes (GIN, B-tree, ivfflat)
47
- - Migration scripts
48
- - **Tests:** Schema validation, RLS policies, index coverage
49
- - **Status:** ✅ Complete (existing)
50
- #### FU-001: Crypto Infrastructure
51
- - **Priority:** P0
52
- - **Risk:** High (security)
53
- - **Complexity:** High
54
- - **Dependencies:** None
55
- - **Deliverables:**
56
- - X25519 key generation (encryption)
57
- - Ed25519 key generation (signatures)
58
- - Envelope encryption/decryption
59
- - Request verification
60
- - Public key registry
61
- - **Tests:** Crypto primitives, key derivation, signature verification
62
- - **Status:** ✅ Complete (existing in `src/crypto/`)
63
- #### FU-002: Configuration Management
64
- - **Priority:** P0
65
- - **Risk:** Medium
66
- - **Complexity:** Low
67
- - **Dependencies:** None
68
- - **Deliverables:**
69
- - `src/config.ts` — Environment variable loading
70
- - `src/config/record_types.ts` — Canonical type mappings
71
- - `src/config/plaid.ts` — Plaid configuration
72
- - **Tests:** Config validation, env var requirements
73
- - **Status:** ✅ Complete (existing)
74
- ### Phase 0.5: Observation Architecture (Building on Event-Sourcing Foundation)
75
- **Goal:** Implement four-layer truth model (Document → Entity → Observation → Snapshot) with reducers, schema registry, and relationships.
76
- **Note:** This phase builds on the event-sourcing foundation (FU-050 through FU-054) which provides reducer infrastructure. Observation architecture enhances that foundation with observation-specific patterns.
77
- #### FU-055: Observation Storage Layer
78
- - **Priority:** P0
79
- - **Risk:** Medium
80
- - **Complexity:** Medium
81
- - **Dependencies:** FU-050 (Event-Sourcing Foundation), FU-051 (Repository Abstractions), FU-052 (Reducer Versioning)
82
- - **Deliverables:**
83
- - Add `observations` table to database schema
84
- - Add `entity_snapshots` table
85
- - Add `raw_fragments` table
86
- - Add indexes and RLS policies
87
- - Repository interfaces: ObservationRepository, SnapshotRepository
88
- - **Tests:**
89
- - Repository interface tests
90
- - CRUD operations
91
- - Transaction handling
92
- - RLS policy validation
93
- - **Status:** ⏳ Not Started
94
- - **Related Documents:**
95
- - [`docs/subsystems/schema.md`](../subsystems/schema.md) — Database schema
96
- - [`docs/subsystems/observation_architecture.md`](../subsystems/observation_architecture.md) — Observation architecture
97
- #### FU-056: Enhanced Reducer Engine for Observations
98
- - **Priority:** P0
99
- - **Risk:** High
100
- - **Complexity:** High
101
- - **Dependencies:** FU-050 (Event-Sourcing Foundation), FU-052 (Reducer Versioning), FU-055 (Observation Storage)
102
- - **Deliverables:**
103
- - Extend existing reducer infrastructure for observation merging
104
- - Implement merge strategies: `last_write`, `highest_priority`, `most_specific`, `merge_array`
105
- - Add provenance tracking in snapshots
106
- - Integrate with existing reducer versioning (FU-052)
107
- - **Tests:**
108
- - Merge strategy tests (all 4 strategies)
109
- - Determinism tests (same observations → same snapshot)
110
- - Out-of-order observation arrival
111
- - Provenance tracking validation
112
- - **Status:** ⏳ Not Started
113
- - **Related Documents:**
114
- - [`docs/subsystems/reducer.md`](../subsystems/reducer.md) — Reducer patterns
115
- - [`docs/architecture/determinism.md`](../architecture/determinism.md) — Determinism requirements
116
- #### FU-057: Schema Registry Service
117
- - **Priority:** P0
118
- - **Risk:** Medium
119
- - **Complexity:** Medium
120
- - **Dependencies:** FU-000 (Database Schema), FU-055 (Observation Storage)
121
- - **Deliverables:**
122
- - `schema_registry` table
123
- - SchemaRegistry service for config-driven schemas
124
- - Schema validation
125
- - Schema versioning and migration support
126
- - **Tests:**
127
- - Schema registration
128
- - Schema validation
129
- - Active schema lookup
130
- - Version migration
131
- - **Status:** ⏳ Not Started
132
- - **Related Documents:**
133
- - [`docs/subsystems/schema_registry.md`](../subsystems/schema_registry.md) — Schema registry patterns
134
- #### FU-058: Observation-Aware Ingestion Pipeline
135
- - **Priority:** P0
136
- - **Risk:** High
137
- - **Complexity:** High
138
- - **Dependencies:** FU-055 (Observation Storage), FU-056 (Enhanced Reducer), FU-100 (File Analysis), FU-101 (Entity Resolution)
139
- - **Deliverables:**
140
- - Integrate observation creation into ingestion pipeline
141
- - Separate known fields vs raw_fragments
142
- - Trigger observation reducer after entity resolution
143
- - Emit state_events for observation creation (integrates with FU-050)
144
- - **Tests:**
145
- - Observation creation during ingestion
146
- - Raw fragment storage
147
- - Reducer invocation
148
- - State event emission (FU-050 integration)
149
- - **Status:** ⏳ Not Started
150
- - **Related Documents:**
151
- - [`docs/subsystems/ingestion/ingestion.md`](../subsystems/ingestion/ingestion.md) — Ingestion pipeline
152
- - [`docs/subsystems/observation_architecture.md`](../subsystems/observation_architecture.md) — Observation architecture
153
- #### FU-059: Relationship Types
154
- - **Priority:** P0
155
- - **Risk:** Low
156
- - **Complexity:** Medium
157
- - **Dependencies:** FU-055 (Observation Storage), FU-103 (Graph Builder)
158
- - **Deliverables:**
159
- - `relationships` table with typed edges
160
- - Relationship service
161
- - First-class relationship types: PART_OF, CORRECTS, REFERS_TO, SETTLES, DUPLICATE_OF
162
- - Graph traversal queries
163
- - **Tests:**
164
- - Relationship creation
165
- - Type validation
166
- - Graph traversal
167
- - Cycle detection
168
- - **Status:** ⏳ Not Started
169
- - **Related Documents:**
170
- - [`docs/subsystems/relationships.md`](../subsystems/relationships.md) — Relationship patterns
171
- #### FU-060: Automated Schema Promotion (Optional P1)
172
- - **Priority:** P1 (Optional)
173
- - **Risk:** Low
174
- - **Complexity:** Medium
175
- - **Dependencies:** FU-057 (Schema Registry), FU-058 (Observation-Aware Ingestion)
176
- - **Deliverables:**
177
- - Pattern detection from raw_fragments
178
- - Frequency analytics
179
- - Schema suggestion generation
180
- - Manifest-based migration (integrates with FU-052)
181
- - **Tests:**
182
- - Pattern detection accuracy
183
- - Frequency thresholds
184
- - Manifest generation
185
- - Migration execution
186
- - **Status:** ⏳ Not Started
187
- - **Related Documents:**
188
- - [`docs/architecture/schema_expansion.md`](../architecture/schema_expansion.md) — Schema expansion patterns
189
- #### FU-061: MCP Actions for Observation Architecture
190
- - **Priority:** P0
191
- - **Risk:** Medium
192
- - **Complexity:** Medium
193
- - **Dependencies:** FU-055 (Observation Storage), FU-056 (Enhanced Reducer), FU-059 (Relationship Types), FU-200 (MCP Server Core)
194
- - **Deliverables:**
195
- - New MCP actions:
196
- - `get_entity_snapshot` — Get entity with provenance
197
- - `list_observations` — Query observations for entity
198
- - `get_field_provenance` — Trace field to source documents
199
- - `create_relationship` — Create typed relationship
200
- - `list_relationships` — Query entity relationships
201
- - Update existing MCP actions to use snapshots
202
- - **Tests:**
203
- - MCP action execution
204
- - Response validation
205
- - Error handling
206
- - Integration with existing actions
207
- - **Status:** ⏳ Not Started
208
- - **Related Documents:**
209
- - [`docs/specs/MCP_SPEC.md`](./MCP_SPEC.md) — MCP specification
210
- ### Phase 1: Core Services (Domain Layer)
211
- **Goal:** Deterministic extraction, entity resolution, graph construction.
212
- #### FU-100: File Analysis Service
213
- - **Priority:** P0
214
- - **Risk:** High (core extraction)
215
- - **Complexity:** High
216
- - **Dependencies:** FU-000 (schema)
217
- - **Deliverables:**
218
- - PDF text extraction (pdf-parse)
219
- - OCR for images (Tesseract)
220
- - Schema type detection (rule-based, deterministic regex patterns)
221
- - Field extraction per schema type (AI interpretation for unstructured files via interpretation service; rule-based for structured data)
222
- - Content hash for deduplication
223
- - PDFDocument fallback for unrecognized document types
224
- - **Constraints (per NEOTOMA_MANIFEST.md):**
225
- - **MUST use interpretation service for unstructured files** (auditable, idempotent via canonicalization + hashing)
226
- - **MUST use deterministic extraction** (same input → same output)
227
- - **MUST fallback to PDFDocument** for unrecognized types (not custom types)
228
- - **MUST be schema-first** (type-driven extraction rules)
229
- - **Tests:**
230
- - Unit: Schema detection rules, field extraction regex determinism
231
- - Property: Same file → same type + same fields (100 runs)
232
- - Integration: Full analysis pipeline via interpretation service (AI interpretation with audit trail)
233
- - E2E: Upload PDF → verify fields extracted deterministically
234
- - **Acceptance:** >85% schema detection accuracy, >80% field extraction success rate, 100% deterministic (same input → same output)
235
- - **Status:** 🔨 Needs Update (existing implementation uses OpenAI LLM; must be replaced with rule-based extraction)
236
- - **Implementation Notes:**
237
- - Current `src/services/file_analysis.ts` uses OpenAI for analysis
238
- - **MUST remove:** `openai.chat.completions.create()` calls
239
- - **MUST implement:** Rule-based schema detection (regex patterns per schema type)
240
- - **MUST implement:** Rule-based field extraction (regex parsers per schema)
241
- - **MUST implement:** PDFDocument fallback (not custom sanitized types)
242
- - **MUST update:** `normalizeRecordType()` to return `'document'` (PDFDocument equivalent) for unrecognized types, not custom types
243
- - See `docs/subsystems/ingestion/ingestion.md` section 5 for rule-based detection patterns
244
- #### FU-100.5: Schema Compliance Verification
245
- - **Priority:** P0
246
- - **Risk:** Medium
247
- - **Complexity:** Medium
248
- - **Dependencies:** FU-100 ✅
249
- - **Deliverables:**
250
- - Automated compliance verification checks
251
- - Verification checklist execution
252
- - Compliance report generation
253
- - **Tests:**
254
- - Schema versioning audit
255
- - Complete extraction coverage verification
256
- - Field validation verification
257
- - Type catalog alignment check
258
- - Extraction metadata verification
259
- - Two-tier system enforcement check
260
- - Immutability enforcement verification
261
- - Multi-pattern matching verification
262
- - Determinism extended verification
263
- - **Acceptance:** All 9 verification checklist items pass
264
- - **Status:** 🔨 Pending (executed after FU-100 completion)
265
- - **Implementation Notes:**
266
- - See `docs/specs/MVP_EXECUTION_PLAN.md` FU-100.5 for complete verification checklist
267
- - Automated checks via grep patterns and test suites
268
- - Human review required for compliance approval
269
- #### FU-101: Entity Resolution Service
270
- - **Priority:** P0 (MVP-critical competitive differentiator)
271
- - **Risk:** Medium
272
- - **Complexity:** Medium
273
- - **Dependencies:** FU-100 (extraction)
274
- **Competitive Importance:** Entity resolution across all personal data (documents + agent-created data) is a core differentiator vs. conversation-only provider memory (ChatGPT, Claude, Gemini). Provider memory doesn't unify entities or resolve canonical IDs. This feature validates Neotoma's defensible positioning.
275
- - **Deliverables:**
276
- - Entity extraction from fields (vendor_name, full_name, etc.)
277
- - Normalization rules (lowercase, trim, suffix removal)
278
- - Deterministic entity ID generation (hash-based)
279
- - Deduplication logic
280
- - Entity-record edge creation
281
- - **Tests:**
282
- - Unit: ID generation determinism, normalization rules
283
- - Property: Same name → same ID (100 runs)
284
- - Integration: Extract + store + link
285
- - **Acceptance:** 0 duplicate entities, 100% deterministic IDs
286
- - **Status:** 🔨 Partial (entity extraction exists, needs canonical ID generation)
287
- #### FU-102: Event Generation Service
288
- - **Priority:** P0 (MVP-critical competitive differentiator)
289
- - **Risk:** Medium
290
- - **Complexity:** Medium
291
- - **Dependencies:** FU-100 (extraction)
292
- **Competitive Importance:** Timeline generation across all personal data (documents + agent-created data) is a core differentiator vs. conversation-only provider memory (ChatGPT, Claude, Gemini). Provider memory doesn't build chronological timelines across personal data. This feature validates Neotoma's defensible positioning.
293
- - **Deliverables:**
294
- - Date field detection per schema type
295
- - Event type mapping (date_issued → InvoiceIssued)
296
- - Deterministic event ID generation (hash-based)
297
- - Event-record and event-entity edge creation
298
- - Timeline ordering (chronological)
299
- - **Tests:**
300
- - Unit: Event ID determinism, date extraction
301
- - Integration: Generate events + insert graph
302
- - E2E: Upload → verify timeline
303
- - **Acceptance:** 100% deterministic event IDs, timeline sorted correctly
304
- - **Status:** 🔨 Partial (event extraction logic TBD)
305
- #### FU-103: Graph Builder Service
306
- - **Priority:** P0
307
- - **Risk:** High (data integrity)
308
- - **Complexity:** Medium
309
- - **Dependencies:** FU-101 (entities), FU-102 (events)
310
- - **Deliverables:**
311
- - Transactional insert (record + entities + events + edges)
312
- - Orphan node prevention
313
- - Cycle detection
314
- - Edge type validation
315
- - **Tests:**
316
- - Unit: Transaction rollback on error
317
- - Integration: Graph integrity constraints
318
- - Property: No orphans, no cycles
319
- - **Acceptance:** 0 orphan nodes, 100% transactional inserts
320
- - **Status:** 🔨 Partial (basic graph exists, needs integrity enforcement)
321
- #### FU-104: Embedding Service
322
- - **Priority:** P1
323
- - **Risk:** Medium
324
- - **Complexity:** Medium
325
- - **Dependencies:** FU-100 (text extraction)
326
- - **Deliverables:**
327
- - OpenAI embedding generation (ada-002, 1536-dim)
328
- - Async embedding queue (bounded eventual)
329
- - Vector storage in PostgreSQL (pgvector)
330
- - Embedding update on record changes
331
- - **Tests:**
332
- - Unit: Embedding generation determinism (same text + model → same vector)
333
- - Integration: Async queue processing
334
- - E2E: Upload → verify embedding within 10s
335
- - **Acceptance:** <10s embedding generation (P95)
336
- - **Status:** ✅ Complete (existing in `src/embeddings.ts`)
337
- #### FU-105: Search Service
338
- - **Priority:** P0
339
- - **Risk:** Medium
340
- - **Complexity:** Medium
341
- - **Dependencies:** FU-104 (embeddings)
342
- - **Deliverables:**
343
- - Structured filters (type, properties, date range)
344
- - Full-text search (GIN indexes)
345
- - Deterministic ranking with tiebreakers
346
- - Pagination
347
- - **Constraints (per NEOTOMA_MANIFEST.md):**
348
- - **MUST NOT use semantic search** (MVP constraint; structured search only)
349
- - **MUST use deterministic ranking** (same query + same DB state → same order)
350
- - **MUST use tiebreakers** (no nondeterministic ordering)
351
- - **Tests:**
352
- - Unit: Ranking algorithm determinism
353
- - Property: Same query → same order (100 runs)
354
- - Integration: Search with fixtures
355
- - E2E: Search via UI
356
- - **Acceptance:** <500ms P95 latency, 100% deterministic order
357
- - **Status:** 🔨 Partial (basic search exists, needs deterministic ranking)
358
- - **Implementation Notes:**
359
- - Current implementation may include semantic search
360
- - **MUST remove:** Vector similarity search from MVP
361
- - **MUST remove:** Hybrid search (structured + semantic)
362
- - **Post-MVP:** Semantic search will be added after MVP launch
363
- - See `docs/subsystems/search/search.md` for structured search patterns
364
- #### FU-106: Chat Transcript to JSON CLI Tool
365
- - **Priority:** P1
366
- - **Risk:** Low
367
- - **Complexity:** Medium
368
- - **Dependencies:** None (standalone CLI, outside Truth Layer)
369
- - **Release:** Internal Release v0.2.0 (pre-MVP)
370
- - **Deliverables:**
371
- - CLI tool for converting chat transcripts (e.g., ChatGPT exports) to structured JSON files
372
- - Support for common export formats (JSON, HTML, text)
373
- - User-correctable field mapping (interactive mode)
374
- - Deterministic JSON output with schema types from normalized transcript
375
- - Documentation and usage examples
376
- - **Constraints (per GENERAL_REQUIREMENTS.md):**
377
- - **MUST be separate from Truth Layer** (non-deterministic interpretation prohibited in ingestion pipeline)
378
- - **MAY use LLMs or heuristics** (not constrained by Truth Layer determinism requirements)
379
- - **MUST output well-structured JSON** with schema types that can be ingested deterministically
380
- - **SHOULD support user correction/review** before final JSON export
381
- - **Tests:**
382
- - Unit: Transcript parsing for each supported format
383
- - Integration: Full CLI workflow (transcript → JSON → validate)
384
- - E2E: CLI → Neotoma ingestion pipeline (JSON record ingestion)
385
- - **Acceptance:** Can convert representative chat exports to JSON with >80% field accuracy
386
- - **Status:** ⏳ Not Started
387
- - **Implementation Notes:**
388
- - CLI runs independently from Neotoma server (Node.js script in `scripts/` or separate package)
389
- - Can use OpenAI/Anthropic APIs for interpretation (outside Truth Layer)
390
- - Output JSON follows standard record format (type, properties, file_urls, summary)
391
- - Each JSON file contains one record object with schema type and extracted properties
392
- - See `docs/specs/GENERAL_REQUIREMENTS.md` for motivation and requirements
393
- - Users run: `npm run chat-to-json -- input.json output_dir/`
394
- ### Phase 2: MCP Layer (Application Layer)
395
- **Goal:** AI-safe access to truth via MCP actions.
396
- #### FU-200: MCP Server Core
397
- - **Priority:** P0
398
- - **Risk:** High (AI interface)
399
- - **Complexity:** High
400
- - **Dependencies:** FU-000 (schema)
401
- - **Deliverables:**
402
- - MCP server initialization
403
- - Tool registration
404
- - Request validation (Zod schemas)
405
- - Error envelope handling
406
- - WebSocket bridge (optional)
407
- - **Tests:**
408
- - Unit: Schema validation
409
- - Integration: MCP protocol compliance
410
- - E2E: ChatGPT/Claude connection
411
- - **Acceptance:** MCP server starts successfully, validates requests
412
- - **Status:** ✅ Complete (existing in `src/server.ts`)
413
- #### FU-201: MCP Action — store_record
414
- - **Priority:** P0
415
- - **Risk:** Medium
416
- - **Complexity:** Medium (increased due to event-sourcing)
417
- - **Dependencies:** FU-200 (MCP core), FU-050 (Event-Sourcing Foundation), FU-051 (Repository Abstractions)
418
- - **Deliverables:**
419
- - Input validation (type, properties required)
420
- - Emit `RecordCreated` event via `EventRepository.appendEvent()`
421
- - Apply reducer (`reduceRecordCreated`) to compute state
422
- - Refresh materialized view after event emission
423
- - Response with created record
424
- - Error handling
425
- - **Tests:**
426
- - Unit: Validation logic, event emission, reducer application
427
- - Integration: Store + retrieve, verify event emitted, verify state matches reducer output
428
- - E2E: ChatGPT creates record
429
- - Property: Event emission + reducer application → state consistent (100 runs)
430
- - **Status:** ✅ Complete
431
- #### FU-202: MCP Action — retrieve_records
432
- - **Priority:** P0
433
- - **Risk:** Medium
434
- - **Complexity:** Medium
435
- - **Dependencies:** FU-105 (search), FU-200 (MCP core), FU-051 (Repository Abstractions)
436
- - **Deliverables:**
437
- - Query parsing (type, properties, search, limit)
438
- - Retrieve state via `StateRepository.getState()` (repository abstraction)
439
- - Search service integration
440
- - Deterministic result ordering
441
- - Pagination
442
- - **Tests:**
443
- - Unit: Query parsing, repository usage
444
- - Integration: Retrieve with filters, verify repository abstraction
445
- - Property: Deterministic order
446
- - **Status:** ✅ Complete
447
- #### FU-203: MCP Action — update_record
448
- - **Priority:** P0 (required for v0.1.0)
449
- - **Risk:** Low
450
- - **Complexity:** Medium (increased due to event-sourcing)
451
- - **Dependencies:** FU-200 (MCP core), FU-050 (Event-Sourcing Foundation), FU-051 (Repository Abstractions)
452
- - **Deliverables:**
453
- - Update validation (id required)
454
- - Emit `RecordUpdated` event via `EventRepository.appendEvent()`
455
- - Apply reducer (`reduceRecordUpdated`) to compute updated state
456
- - Refresh materialized view after event emission
457
- - Property merging
458
- - Response with updated record
459
- - **Tests:**
460
- - Unit: Merge logic, event emission, reducer application
461
- - Integration: Update + retrieve, verify event emitted, verify state matches reducer output
462
- - Property: Event emission + reducer application → state consistent (100 runs)
463
- - **Status:** ✅ Complete
464
- #### FU-204: MCP Action — delete_record
465
- - **Priority:** P0 (required for v0.1.0)
466
- - **Risk:** Medium (data loss)
467
- - **Complexity:** Medium (increased due to event-sourcing)
468
- - **Dependencies:** FU-200 (MCP core), FU-050 (Event-Sourcing Foundation), FU-051 (Repository Abstractions)
469
- - **Deliverables:**
470
- - Delete validation
471
- - Emit `RecordDeleted` event via `EventRepository.appendEvent()`
472
- - Apply reducer (`reduceRecordDeleted`) to mark record as deleted
473
- - Refresh materialized view after event emission
474
- - Cascade delete (edges, files)
475
- - Response with confirmation
476
- - **Tests:**
477
- - Unit: Validation, event emission, reducer application
478
- - Integration: Delete + verify gone, verify event emitted, verify state matches reducer output
479
- - E2E: Delete via ChatGPT
480
- - Property: Event emission + reducer application → state consistent (100 runs)
481
- - **Status:** ✅ Complete
482
- #### FU-205: MCP Action — upload_file
483
- - **Priority:** P0
484
- - **Risk:** High (core ingestion)
485
- - **Complexity:** High
486
- - **Dependencies:** FU-100 (file analysis), FU-200 (MCP core), FU-050 (Event-Sourcing Foundation), FU-051 (Repository Abstractions)
487
- - **Deliverables:**
488
- - File path validation
489
- - Upload to storage (cloud storage or S3)
490
- - Trigger file analysis (optional)
491
- - Create record with extracted fields (uses `store_record` internally, inherits event-sourcing)
492
- - Use `StateRepository` and `EventRepository` when creating records
493
- - Response with record + file URL
494
- - **Tests:**
495
- - Unit: File validation
496
- - Integration: Upload + analyze + store, verify event emitted for created record
497
- - E2E: ChatGPT uploads file → sees extraction
498
- - **Acceptance:** >95% upload success rate, <5s P95 latency
499
- - **Status:** ✅ Complete
500
- #### FU-206: MCP Action — get_file_url
501
- - **Priority:** P1
502
- - **Risk:** Low
503
- - **Complexity:** Low
504
- - **Dependencies:** FU-200 (MCP core)
505
- - **Deliverables:**
506
- - Signed URL generation
507
- - Expiration handling
508
- - **Tests:**
509
- - Unit: URL signing
510
- - Integration: Get URL + verify accessible
511
- - **Status:** ✅ Complete
512
- #### FU-207: MCP Plaid Integration
513
- - **Priority:** Post-MVP (Tier 3+ use case)
514
- - **Risk:** Medium
515
- - **Complexity:** High
516
- - **Dependencies:** FU-200 (MCP core)
517
- - **Deliverables:**
518
- - `plaid_create_link_token` action
519
- - `plaid_exchange_public_token` action
520
- - `plaid_sync` action
521
- - `plaid_list_items` action
522
- - Transaction import and normalization
523
- - **Tests:**
524
- - Unit: Token exchange, transaction mapping
525
- - Integration: Full Plaid flow (sandbox)
526
- - E2E: Connect Plaid → sync → see transactions
527
- - **Status:** ✅ Complete (existing, but post-MVP)
528
- - **Rationale:** Plaid (live bank transaction sync) serves Tier 3+ ICPs (Cross-Border Solopreneurs, Agentic Portfolio) better than Tier 1. Tier 1 needs document upload (PDF invoices/receipts/statements), not live account connections.
529
- #### FU-208: MCP Provider Integrations
530
- - **Priority:** P1
531
- - **Risk:** Medium
532
- - **Complexity:** High
533
- - **Dependencies:** FU-200 (MCP core)
534
- - **Deliverables:**
535
- - `list_provider_catalog` action
536
- - `sync_provider_imports` action
537
- - Provider catalog (Gmail only for MVP)
538
- - OAuth flows per provider
539
- - Generic connector framework
540
- - **Tests:**
541
- - Unit: Provider catalog, sync logic
542
- - Integration: Mock provider sync
543
- - E2E: Connect provider → sync → see records
544
- - **Status:** ✅ Complete (existing)
545
- - **Note:** X and Instagram integrations are post-MVP. Only Gmail is included in MVP scope as it aligns with Tier 1 ICP needs (document import from email attachments).
546
- ### Phase 3: UI Layer (Presentation)
547
- **Goal:** User-facing interface for truth inspection.
548
- #### FU-300: UI Foundation
549
- - **Priority:** P0
550
- - **Risk:** Medium
551
- - **Complexity:** Medium
552
- - **Dependencies:** None (UI independent)
553
- - **Deliverables:**
554
- - React app scaffold (Vite + TypeScript)
555
- - UI component library (shadcn/ui)
556
- - Tailwind configuration
557
- - Theme system (light/dark)
558
- - Routing (path-based, no external router)
559
- - State management
560
- - **Design system implementation** (see `docs/ui/design_system.md`):
561
- - Font configuration (Inter for UI, JetBrains Mono for monospace)
562
- - Typography scale (h1-h4, body, small, monospace with correct sizes/weights/line-heights)
563
- - Color palette (light/dark mode with semantic colors)
564
- - Component styles (buttons, inputs, tables, cards, badges matching design system)
565
- - Spacing scale implementation
566
- - Border radius values (6px buttons/inputs, 8px cards, 4px badges)
567
- - Interactive design system preview (`/design-system` route)
568
- - **Tests:**
569
- - Component: Button, card, dialog, table
570
- - E2E: App loads successfully
571
- - E2E: Design system preview accessible at `/design-system`
572
- - **Acceptance:** All components match design system specifications, style guide displays all components correctly
573
- - **Status:** 🔨 Partial (foundation exists, design system implementation in progress)
574
- #### FU-301: Source List View
575
- - **Priority:** P0
576
- - **Risk:** Low
577
- - **Complexity:** Medium
578
- - **Dependencies:** FU-300 (UI foundation), MCP retrieve actions for source
579
- - **Deliverables:**
580
- - Table view with sortable columns (source, not deprecated records)
581
- - Type filter dropdown (file types, structured data types)
582
- - Search input (full-text across source)
583
- - Pagination (load more)
584
- - Click row → show source detail
585
- - Uses `sources` table (NOT deprecated `records` table)
586
- - **UI Pattern:** List (see `docs/ui/patterns/list.md`)
587
- - **Tests:**
588
- - Component: SourceNodeTable rendering
589
- - Accessibility: Keyboard nav, ARIA labels
590
- - E2E: Filter, search, sort, click
591
- - Database: Queries use `sources` table, NOT `records`
592
- - **Acceptance:** Displays all source, filters work, <2s load time, uses current architecture (no deprecated tables)
593
- - **Status:** 🔨 Partial (existing RecordsTable.tsx needs refactoring to use `sources` table)
594
- - **Migration Note:** Rename from "Records List View" to align with canonical vocabulary; refactor to query `sources` table instead of deprecated `records` table
595
- #### FU-302: Source Detail View
596
- - **Priority:** P0
597
- - **Risk:** Low
598
- - **Complexity:** Medium
599
- - **Dependencies:** FU-300 (UI foundation), MCP retrieve actions for source, interpretations, observations
600
- - **Deliverables:**
601
- - Slide-out panel or modal
602
- - Display source metadata (id, content_hash, mime_type, file_name, created_at)
603
- - Display interpretations (AI interpretation runs with config: model, temperature, prompt_hash)
604
- - Display observations (extracted facts with provenance)
605
- - Display linked entities (from observations)
606
- - Display linked events (timeline events)
607
- - File preview (if applicable)
608
- - Uses `sources`, `interpretations`, `observations` tables (NOT deprecated `records`)
609
- - Actions: Reinterpret, Delete
610
- - **UI Pattern:** Detail (see `docs/ui/patterns/detail.md`)
611
- - **Tests:**
612
- - Component: SourceNodeDetailsPanel
613
- - Accessibility: Focus management, ESC to close
614
- - E2E: Click source → see details with interpretations and observations
615
- - Database: Queries use `sources`, `interpretations`, `observations` tables, NOT `records`
616
- - **Acceptance:** All source metadata visible, interpretations shown with config, observations shown with provenance, entities/events linked
617
- - **Status:** 🔨 Partial (existing RecordDetailsPanel.tsx needs refactoring to use `sources` + `interpretations` + `observations`)
618
- - **Migration Note:** Rename from "Record Detail View" to align with canonical vocabulary; refactor to show source, interpretations, and observations (four-layer truth model)
619
- #### FU-303: Timeline View
620
- - **Priority:** P0
621
- - **Risk:** Medium
622
- - **Complexity:** Medium
623
- - **Dependencies:** FU-102 (event generation), FU-300 (UI foundation)
624
- - **Deliverables:**
625
- - Chronological event list (sorted by event_timestamp)
626
- - Group by date (day/month/year)
627
- - Click event → navigate to source record
628
- - Filter by date range
629
- - Filter by event type
630
- - Virtualized scrolling (if >100 events)
631
- - **UI Pattern:** Custom timeline pattern
632
- - **Tests:**
633
- - Component: Timeline rendering, sorting
634
- - Accessibility: Keyboard nav, time elements
635
- - E2E: View timeline → click event → see record
636
- - **Acceptance:** Events sorted chronologically, all source links work
637
- - **Status:** ⏳ Not Started
638
- #### FU-304: File Upload UI
639
- - **Priority:** P0
640
- - **Risk:** Medium
641
- - **Complexity:** Medium
642
- - **Dependencies:** FU-205 (upload_file MCP), FU-300 (UI foundation)
643
- - **Deliverables:**
644
- - Drag-and-drop zone
645
- - File picker button
646
- - **Bulk upload support** (multiple files, folder import)
647
- - **Upload queue management** (track multiple uploads)
648
- - **Progress tracking** (per-file and overall progress)
649
- - **Resume on failure** (retry failed uploads)
650
- - Upload progress indicator
651
- - Success notification → navigate to source detail
652
- - Error handling with retry
653
- - **Tests:**
654
- - Component: Upload zone states (idle, dragging, uploading, error)
655
- - Component: Bulk upload (10+ files), queue management
656
- - Accessibility: Keyboard upload, progress ARIA
657
- - E2E: Upload file → see record
658
- - E2E: Bulk upload → verify all files processed
659
- - **Acceptance:** >95% upload success (user-initiated), <10s total time per file, bulk upload handles 50+ files
660
- - **Status:** 🔨 Partial (upload exists in ChatPanel, needs dedicated upload UI)
661
- #### FU-305: Dashboard View
662
- - **Priority:** P1
663
- - **Risk:** Low
664
- - **Complexity:** Low
665
- - **Dependencies:** FU-300 (UI foundation), MCP retrieve actions for source, entities, events
666
- - **Deliverables:**
667
- - Stats widgets (total source, entities by type, events, observations, interpretations)
668
- - Recent source list (last 5)
669
- - Entity count by type (companies, people, invoices, etc.)
670
- - Quick actions (Upload, Search)
671
- - Uses main objects from `docs/vocabulary/canonical_terms.md` (NOT deprecated records)
672
- - **UI Pattern:** Dashboard (see `docs/ui/patterns/dashboard.md`)
673
- - **Tests:**
674
- - Component: Dashboard widgets
675
- - E2E: Dashboard loads, stats accurate, uses correct tables
676
- - Database: Queries use `sources`, `entities`, `observations` tables, NOT `records`
677
- - **Acceptance:** Dashboard displays in <2s, shows stats for main objects (source, entities, observations, events)
678
- - **Status:** ⏳ Not Started
679
- - **Migration Note:** Dashboard stats should reflect main objects (source, entities, observations, events), not deprecated records
680
- #### FU-306: Settings UI
681
- - **Priority:** P2
682
- - **Risk:** Low
683
- - **Complexity:** Low
684
- - **Dependencies:** FU-300 (UI foundation)
685
- - **Deliverables:**
686
- - User preferences (locale, timezone)
687
- - Connected integrations list
688
- - Theme toggle (light/dark)
689
- - Account settings
690
- - **UI Pattern:** Settings (see `docs/ui/patterns/settings.md`)
691
- - **Tests:**
692
- - Component: Settings form
693
- - E2E: Change locale → verify formatting
694
- - **Status:** 🔨 Partial (FloatingSettingsButton exists, needs full settings)
695
- #### FU-307: Chat/AI Panel
696
- - **Priority:** P0 → **EXCLUDED** (Architectural Decision)
697
- - **Risk:** Medium
698
- - **Complexity:** High
699
- - **Dependencies:** FU-202 (retrieve_records), FU-300 (UI foundation)
700
- - **Deliverables:**
701
- - ~~Chat interface (user message, AI response)~~ **EXCLUDED**
702
- - ~~MCP integration (retrieve_records via backend)~~ **EXCLUDED** (MCP integration handled via external agents)
703
- - ~~Record references in responses~~ **EXCLUDED**
704
- - ~~File upload from chat~~ **EXCLUDED** (upload UI separated)
705
- - ~~Message history persistence~~ **EXCLUDED**
706
- - **Architectural Decision:** Neotoma adopts MCP-first conversational architecture. All conversational interactions MUST be externalized to MCP-compatible agents (ChatGPT, Cursor, Claude). Internal chat UI violates architectural decision. See `docs/architecture/conversational_ux_architecture.md` for rationale.
707
- - **Migration Path:**
708
- - ChatPanel component exists but MUST be deprecated
709
- - Extract deterministic operations (search, filter) to standalone components
710
- - Remove conversational state management
711
- - Create MCP integration documentation for external agents
712
- - See `docs/releases/in_progress/v1.0.0/architectural_impact_chat_ui.md` for migration details
713
- - **Status:** ❌ **EXCLUDED** (existing `ChatPanel.tsx` to be deprecated)
714
- ### Phase 4: Onboarding Flow
715
- **Goal:** First-run experience (signup → first upload → activation).
716
- #### FU-400: Onboarding Welcome Screen
717
- - **Priority:** P0
718
- - **Risk:** Low
719
- - **Complexity:** Low
720
- - **Dependencies:** FU-300 (UI foundation)
721
- - **Deliverables:**
722
- - Welcome message
723
- - Value proposition (minimal, direct)
724
- - Primary CTA: Upload First Document
725
- - Skip link for returning users
726
- - **Tests:**
727
- - Component: WelcomeScreen
728
- - Accessibility: Focus on CTA
729
- - E2E: New user sees welcome → clicks upload
730
- - **Acceptance:** >60% click-through to upload
731
- - **Status:** ⏳ Not Started
732
- #### FU-401: Onboarding Processing Indicator
733
- - **Priority:** P0
734
- - **Risk:** Low
735
- - **Complexity:** Low
736
- - **Dependencies:** FU-205 (upload_file)
737
- - **Deliverables:**
738
- - Step-by-step progress (Extracting text ✓, Detecting type ✓, etc.)
739
- - Loading states per step
740
- - Timeout handling (max 30s)
741
- - **Tests:**
742
- - Component: ProcessingIndicator
743
- - Accessibility: Live region announcements
744
- - E2E: Upload → see progress → see results
745
- - **Acceptance:** User understands what's happening, no black box
746
- - **Status:** ⏳ Not Started
747
- #### FU-402: Onboarding Extraction Results
748
- - **Priority:** P0
749
- - **Risk:** Low
750
- - **Complexity:** Medium
751
- - **Dependencies:** FU-302 (source detail), FU-401 (processing)
752
- - **Deliverables:**
753
- - Show extracted fields with labels
754
- - Highlight entities (visual distinction)
755
- - Show timeline events
756
- - CTAs: View Timeline, Upload Another, Ask AI
757
- - **Tests:**
758
- - Component: ExtractionResults
759
- - E2E: Upload → see fields → click entity → see detail
760
- - **Acceptance:** >50% view extraction results, >40% proceed to timeline
761
- - **Status:** ⏳ Not Started
762
- #### FU-403: Onboarding State Management
763
- - **Priority:** P0
764
- - **Risk:** Low
765
- - **Complexity:** Low
766
- - **Dependencies:** FU-400, FU-401, FU-402
767
- - **Deliverables:**
768
- - Onboarding state hook (useOnboardingState)
769
- - Milestone tracking (first_upload, first_extraction_viewed, etc.)
770
- - Persistence (localStorage + optional server sync)
771
- - Resume logic (return to incomplete step)
772
- - Completion detection
773
- - **Tests:**
774
- - Unit: State transitions
775
- - Integration: Persist + resume
776
- - E2E: Complete onboarding → state marked done
777
- - **Acceptance:** 50% complete onboarding, persistent across sessions
778
- - **Status:** ⏳ Not Started
779
- ### Phase 5: Integrations
780
- **Goal:** External data sources (Gmail only for MVP).
781
- #### FU-500: Plaid Link UI
782
- - **Priority:** Post-MVP (Tier 3+ use case)
783
- - **Risk:** Medium
784
- - **Complexity:** Medium
785
- - **Dependencies:** FU-207 (Plaid MCP), FU-300 (UI foundation)
786
- - **Deliverables:**
787
- - Plaid Link button
788
- - OAuth flow (popup or redirect)
789
- - Success callback → store item
790
- - Initial sync trigger
791
- - Connected accounts list
792
- - **Tests:**
793
- - Component: PlaidLinkButton
794
- - Integration: Full OAuth flow (sandbox)
795
- - E2E: Connect bank → see accounts → sync → see transactions
796
- - **Acceptance:** Users can connect Plaid accounts, see transactions
797
- - **Status:** 🔨 Partial (Plaid MCP exists, UI TBD)
798
- - **Rationale:** Plaid (live bank transaction sync) serves Tier 3+ ICPs (Cross-Border Solopreneurs, Agentic Portfolio) better than Tier 1. Tier 1 needs document upload (PDF invoices/receipts/statements), not live account connections.
799
- #### FU-501: External Provider Connectors UI
800
- - **Priority:** P1
801
- - **Risk:** Medium
802
- - **Complexity:** High
803
- - **Dependencies:** FU-208 (provider MCP), FU-300 (UI foundation)
804
- - **Deliverables:**
805
- - Provider catalog display
806
- - Connect provider button (OAuth per provider)
807
- - Connected providers list
808
- - Sync trigger UI
809
- - Sync status display
810
- - **Tests:**
811
- - Component: ProviderCatalog, ConnectorList
812
- - Integration: OAuth flow per provider
813
- - E2E: Connect Gmail → sync attachments → see records
814
- - **Acceptance:** Users can connect and sync providers
815
- - **Status:** 🔨 Partial (provider catalog exists, UI TBD)
816
- - **Note:** Only Gmail provider UI is required for MVP. X and Instagram connectors are post-MVP.
817
- ### Phase 6: Search and Discovery
818
- **Goal:** Find records across multiple dimensions.
819
- #### FU-600: Advanced Search UI
820
- - **Priority:** P1
821
- - **Risk:** Low
822
- - **Complexity:** Medium
823
- - **Dependencies:** FU-105 (search service), FU-301 (source list)
824
- - **Deliverables:**
825
- - Search input with auto-complete
826
- - Filter panel (type, date range, properties)
827
- - Result highlighting
828
- - Zero results state
829
- - **Constraints (per NEOTOMA_MANIFEST.md):**
830
- - **MUST NOT include semantic search toggle** (MVP constraint; structured search only)
831
- - **Post-MVP:** Semantic search mode will be added after MVP launch
832
- - **Tests:**
833
- - Component: SearchInput, FilterPanel
834
- - Accessibility: Keyboard shortcuts (/ to focus search)
835
- - E2E: Search → filter → see results
836
- - **Acceptance:** Search returns results in <500ms, zero results handled gracefully
837
- - **Status:** 🔨 Partial (basic search exists in RecordsTable)
838
- - **Implementation Notes:**
839
- - Remove any semantic/hybrid search mode toggles from UI
840
- - Structured filters only (type, properties, date range, full-text keyword)
841
- #### FU-601: Entity Explorer UI
842
- - **Priority:** **P0** (Promoted from P2 — MVP-critical for validating entity resolution differentiator)
843
- - **Risk:** Low
844
- - **Complexity:** Medium
845
- - **Dependencies:** FU-101 (entity resolution), FU-300 (UI foundation)
846
- - **Deliverables:**
847
- - Entity list view (browse entities by type: company, person, location, invoice, etc.)
848
- - Entity detail view (shows entity snapshot + observations + provenance)
849
- - Entity detail shows all linked source (via observations)
850
- - Entity detail shows all relationships (PART_OF, REFERS_TO, SETTLES, etc.)
851
- - Entity graph visualization (basic, can defer advanced viz to post-MVP)
852
- - Filter by entity type
853
- - Search entities by canonical name
854
- - **UI Pattern:** List + Detail (see `docs/ui/patterns/list.md`, `docs/ui/patterns/detail.md`)
855
- - **Tests:**
856
- - Component: EntityList, EntityDetail, EntitySnapshot display
857
- - Accessibility: Keyboard nav, ARIA labels
858
- - E2E: Browse entities → click entity → see entity snapshot with observations
859
- - E2E: Entity detail shows provenance (which source contributed which fields)
860
- - E2E: Entity detail shows relationships to other entities
861
- - **Acceptance:** Users can browse all entities, see entity snapshots with provenance, see relationships, navigate to source
862
- - **Status:** ⏳ Not Started (prototype exists in `EntityExplorerView.tsx`)
863
- - **Promotion Rationale:**
864
- - Entity resolution (FU-101) is MVP-critical competitive differentiator
865
- - Without Entity Explorer, users cannot see the output of entity resolution
866
- - Entity-centric UX is "Primary UX" per `docs/architecture/architectural_decisions.md` Section 8
867
- - Validates competitive differentiation (entity resolution across personal data)
868
- ### Phase 7: Auth and Multi-User
869
- **Goal:** User authentication and data isolation for team support.
870
- #### FU-700: Authentication Flow
871
- - **Priority:** P0 (Required for MVP — supports Tier 1 founders & small teams)
872
- - **Risk:** High (security)
873
- - **Complexity:** Medium
874
- - **Dependencies:** None
875
- - **Deliverables:**
876
- - OAuth integration
877
- - Signup/signin UI
878
- - Password reset
879
- - OAuth providers (Google, GitHub)
880
- - Session management
881
- - **Tests:**
882
- - Integration: Signup, signin, signout
883
- - E2E: Full auth flow
884
- - Security: Token validation, session expiry
885
- - **Acceptance:** Users can signup/signin, sessions secure
886
- - **Status:** 🔨 Partial (OAuth integrated, UI TBD)
887
- #### FU-701: Row-Level Security (RLS)
888
- - **Priority:** P0 (Required for MVP — enables team data isolation)
889
- - **Risk:** High (data isolation)
890
- - **Complexity:** Medium
891
- - **Dependencies:** FU-700 (auth), FU-000 (schema)
892
- - **Deliverables:**
893
- - Add `user_id` column to `records`
894
- - RLS policies (users see only their records)
895
- - Migration to backfill `user_id`
896
- - Update MCP actions to filter by `auth.uid()`
897
- - **Tests:**
898
- - Integration: User A cannot see User B's records
899
- - E2E: Multi-user isolation
900
- - **Acceptance:** 100% user isolation, no data leaks
901
- - **Status:** ⏳ Not Started
902
- #### FU-703: Local Storage / Offline Mode
903
- - **Priority:** P0 (Required for MVP — local-first architecture)
904
- - **Risk:** Medium
905
- - **Complexity:** High
906
- - **Dependencies:** FU-001 (crypto infrastructure)
907
- - **Deliverables:**
908
- - SQLite WASM with OPFS VFS for persistent local storage
909
- - Encrypted local datastore (end-to-end encryption)
910
- - Local file processing and storage
911
- - Chat message persistence (encrypted localStorage)
912
- - WebWorker RPC for isolated datastore operations
913
- - Local-first sync capabilities (optional server sync)
914
- - **Tests:**
915
- - Integration: Local datastore operations (CRUD)
916
- - Integration: Encryption/decryption of local data
917
- - E2E: Offline mode functionality
918
- - E2E: Data persistence across sessions
919
- - **Acceptance:**
920
- - Local datastore functional offline
921
- - Data encrypted at rest
922
- - Persistence across browser sessions
923
- - **Status:** ✅ Complete (existing in `frontend/src/store/`, `frontend/src/worker/`, `frontend/src/utils/local_files.ts`)
924
- - **Rationale:** Local-first architecture enables offline functionality and data ownership. Users can work offline and sync when online. Aligns with Tier 1 ICP needs for data privacy and offline access.
925
- #### FU-702: Billing and Subscription Management
926
- - **Priority:** P1 (Required for revenue collection — enables M2 milestone: €5k MRR)
927
- - **Risk:** Medium (payment processing, revenue critical)
928
- - **Complexity:** High
929
- - **Dependencies:** FU-700 (auth), FU-701 (RLS)
930
- - **Deliverables:**
931
- - Stripe integration (subscriptions, invoices, webhooks)
932
- - Subscription management (create, update, cancel)
933
- - Billing plans (individual: €250–€1,250/month, team: €500–€2,500/month)
934
- - Invoice generation and history
935
- - Usage tracking (records, API calls, storage)
936
- - Billing UI (subscription management, invoices, usage dashboard)
937
- - **Tests:**
938
- - Unit: Pricing calculations, currency formatting, plan validation
939
- - Integration: Stripe subscription creation, webhook handling, invoice generation
940
- - E2E: User subscribes → sees active subscription → views invoices
941
- - **Acceptance:**
942
- - > 95% payment success rate
943
- - Subscription creation works end-to-end
944
- - Invoice generation functional
945
- - Revenue tracking accurate (enables M2: €5k MRR)
946
- - **Status:** ⏳ Not Started
947
- - **Rationale:** Required for revenue collection to meet M2 milestone (€5k MRR by Jan 10, 2026). Enables Tier 1 ICPs (individuals and small teams) to pay after experiencing value. See [`docs/feature_units/completed/FU-702/billing_spec.md`](../feature_units/completed/FU-702/billing_spec.md) for full specification.
948
- ### Phase 8: Observability and Monitoring
949
- **Goal:** Metrics, logs, traces for production readiness.
950
- #### FU-800: Technical Metrics (Prometheus)
951
- - **Priority:** P1
952
- - **Risk:** Low
953
- - **Complexity:** Medium
954
- - **Dependencies:** All feature units (cross-cutting)
955
- - **Deliverables:**
956
- - Prometheus client library integration
957
- - Instrument all MCP actions (counters, histograms)
958
- - Instrument ingestion pipeline (duration, success rate)
959
- - Instrument search (latency, result counts)
960
- - Instrument graph operations (orphan detection, integrity)
961
- - Metrics endpoint (`/metrics`) for Prometheus scraping
962
- - Grafana dashboards (real-time operations, graph health)
963
- - **Metrics:** Technical metrics from `docs/specs/METRICS_REQUIREMENTS.md`:
964
- - `neotoma_record_upload_duration_ms`, `neotoma_search_duration_ms`
965
- - `neotoma_extraction_errors_total`, `neotoma_mcp_error_rate`
966
- - `neotoma_graph_orphan_nodes_total`, `neotoma_db_connection_pool_usage`
967
- - **Tests:**
968
- - Unit: Metric emission
969
- - Integration: Verify metrics collected by Prometheus
970
- - **Acceptance:** All required technical metrics instrumented
971
- - **Status:** ⏳ Not Started
972
- #### FU-803: Product Analytics (PostHog/Mixpanel)
973
- - **Priority:** P1
974
- - **Risk:** Low
975
- - **Complexity:** Low
976
- - **Dependencies:** FU-700 (auth) for user identification
977
- - **Deliverables:**
978
- - Product analytics integration (PostHog recommended for open-source, or Mixpanel)
979
- - Event tracking for user actions:
980
- - Signup, first upload, first extraction, first entity view, first timeline view
981
- - Search queries, AI queries, entity clicks
982
- - Funnel analysis (signup → upload → extraction → entity → timeline)
983
- - Retention cohort tracking (day 1, week 1, month 1)
984
- - User segmentation and behavior analysis
985
- - Product health dashboard (DAU/WAU/MAU, activation rates, retention)
986
- - **Metrics:** Product metrics from `docs/specs/METRICS_REQUIREMENTS.md`:
987
- - `activation_first_upload_rate`, `activation_first_extraction_rate`
988
- - `day_1_retention`, `week_1_retention`, `month_1_retention`
989
- - `daily_active_users`, `weekly_active_users`
990
- - **Tests:**
991
- - Integration: Verify events tracked correctly
992
- - E2E: Complete user journey → verify events in analytics platform
993
- - **Acceptance:** All required product metrics tracked
994
- - **Status:** ⏳ Not Started
995
- - **Rationale:** Product analytics (activation, retention, funnels) requires different tooling than technical metrics (latency, errors). PostHog provides open-source alternative to Mixpanel with similar capabilities.
996
- #### FU-801: Logging Infrastructure
997
- - **Priority:** P1
998
- - **Risk:** Low
999
- - **Complexity:** Low
1000
- - **Dependencies:** None
1001
- - **Deliverables:**
1002
- - Structured logging (Winston or Pino)
1003
- - Log levels (error, warn, info, debug)
1004
- - PII filtering (no properties logged)
1005
- - trace_id injection
1006
- - **Tests:**
1007
- - Unit: Log formatting, PII filtering
1008
- - Integration: Logs emitted correctly
1009
- - **Acceptance:** All errors logged, no PII leaks
1010
- - **Status:** 🔨 Partial (console logging exists, needs structured logging)
1011
- #### FU-802: Distributed Tracing
1012
- - **Priority:** P2
1013
- - **Risk:** Low
1014
- - **Complexity:** Medium
1015
- - **Dependencies:** FU-801 (logging)
1016
- - **Deliverables:**
1017
- - Tracing library (OpenTelemetry or similar)
1018
- - Span creation for critical paths
1019
- - trace_id propagation
1020
- - Trace export (Jaeger or similar)
1021
- - **Tests:**
1022
- - Integration: Verify spans created
1023
- - E2E: Upload → verify full trace
1024
- - **Acceptance:** All critical paths traced
1025
- - **Status:** ⏳ Not Started
1026
- ### Phase 9: Polish and Hardening
1027
- **Goal:** Production-ready stability and UX polish.
1028
- #### FU-900: Error Handling UI
1029
- - **Priority:** P1
1030
- - **Risk:** Low
1031
- - **Complexity:** Low
1032
- - **Dependencies:** FU-300 (UI foundation)
1033
- - **Deliverables:**
1034
- - Error boundary component
1035
- - Toast notifications
1036
- - Error page (404, 500)
1037
- - Retry mechanisms
1038
- - User-friendly error messages
1039
- - **Tests:**
1040
- - Component: Error boundary, toast
1041
- - E2E: Trigger error → see message → retry
1042
- - **Acceptance:** All errors handled gracefully
1043
- - **Status:** 🔨 Partial (toast exists, needs error boundary)
1044
- #### FU-901: Loading States
1045
- - **Priority:** P1
1046
- - **Risk:** Low
1047
- - **Complexity:** Low
1048
- - **Dependencies:** FU-300 (UI foundation)
1049
- - **Deliverables:**
1050
- - Skeleton loaders
1051
- - Spinner components
1052
- - Progress bars
1053
- - Consistent loading UX
1054
- - **Tests:**
1055
- - Component: Skeleton, spinner
1056
- - E2E: Loading states visible during actions
1057
- - **Acceptance:** No blank screens, loading indicators everywhere
1058
- - **Status:** 🔨 Partial (some loading states exist)
1059
- #### FU-902: Empty States
1060
- - **Priority:** P1
1061
- - **Risk:** Low
1062
- - **Complexity:** Low
1063
- - **Dependencies:** FU-300 (UI foundation)
1064
- - **Deliverables:**
1065
- - No records: "Upload your first document"
1066
- - No search results: "No matches found"
1067
- - No entities: "Entities will appear after upload"
1068
- - No events: "Events will appear from dates in documents"
1069
- - **Tests:**
1070
- - Component: Empty state variants
1071
- - E2E: New user sees empty states → uploads → empty states gone
1072
- - **Acceptance:** All empty states handled
1073
- - **Status:** 🔨 Partial (some empty states exist)
1074
- #### FU-903: Accessibility Audit and Fixes
1075
- - **Priority:** P1
1076
- - **Risk:** Low
1077
- - **Complexity:** Medium
1078
- - **Dependencies:** All UI Feature Units
1079
- - **Deliverables:**
1080
- - jest-axe integration
1081
- - Fix all A11y violations
1082
- - Keyboard navigation audit
1083
- - Screen reader testing
1084
- - WCAG AA compliance
1085
- - **Tests:**
1086
- - All components: No axe violations
1087
- - E2E: Full keyboard navigation flow
1088
- - **Acceptance:** 0 A11y violations, WCAG AA compliant
1089
- - **Status:** ⏳ Not Started
1090
- #### FU-904: Internationalization Setup
1091
- - **Priority:** P2
1092
- - **Risk:** Low
1093
- - **Complexity:** Medium
1094
- - **Dependencies:** All UI Feature Units
1095
- - **Deliverables:**
1096
- - i18n library (react-i18next or similar)
1097
- - Extract all UI strings to translation files
1098
- - Locale detection
1099
- - Date/number formatting per locale
1100
- - Language switcher UI
1101
- - **Tests:**
1102
- - Unit: Translation coverage
1103
- - E2E: Switch locale → verify UI language, dates formatted
1104
- - **Acceptance:** All UI text translatable, locale formatting works
1105
- - **Status:** ⏳ Not Started
1106
- ## Feature Unit Summary Table
1107
- | ID | Name | Phase | Priority | Risk | Complexity | Status | Blocking |
1108
- | -------- | ------------------------------ | ----- | ------------- | ------ | ---------- | ------------------------------------ | ------------------------------ |
1109
- | FU-000 | Database Schema | 0 | P0 | High | Medium | ✅ Complete | None |
1110
- | FU-001 | Crypto Infrastructure | 0 | P0 | High | High | ✅ Complete | None |
1111
- | FU-002 | Configuration | 0 | P0 | Medium | Low | ✅ Complete | None |
1112
- | FU-100 | File Analysis | 1 | P0 | High | High | 🔨 Needs Update | FU-000 |
1113
- | FU-100.5 | Schema Compliance Verification | 1 | P0 | Medium | Medium | 🔨 Pending | FU-100 |
1114
- | FU-101 | Entity Resolution | 1 | P0 | Medium | Medium | 🔨 Partial | FU-100 |
1115
- | FU-102 | Event Generation | 1 | P0 | Medium | Medium | 🔨 Partial | FU-100 |
1116
- | FU-103 | Graph Builder | 1 | P0 | High | Medium | 🔨 Partial | FU-101, FU-102 |
1117
- | FU-104 | Embedding Service | 1 | P1 | Medium | Medium | ✅ Complete | FU-100 |
1118
- | FU-105 | Search Service | 1 | P0 | Medium | Medium | 🔨 Partial | FU-104 |
1119
- | FU-200 | MCP Server Core | 2 | P0 | High | High | ✅ Complete | FU-000 |
1120
- | FU-201 | store_record | 2 | P0 | Medium | Medium | ✅ Complete | FU-200, FU-050, FU-051 |
1121
- | FU-202 | retrieve_records | 2 | P0 | Medium | Medium | ✅ Complete | FU-105, FU-200, FU-051 |
1122
- | FU-203 | update_record | 2 | P0 | Low | Medium | ✅ Complete | FU-200, FU-050, FU-051 |
1123
- | FU-204 | delete_record | 2 | P0 | Medium | Medium | ✅ Complete | FU-200, FU-050, FU-051 |
1124
- | FU-205 | upload_file | 2 | P0 | High | High | ✅ Complete | FU-100, FU-200, FU-050, FU-051 |
1125
- | FU-206 | get_file_url | 2 | P1 | Low | Low | ✅ Complete | FU-200 |
1126
- | FU-207 | Plaid Integration | 2 | Post-MVP | Medium | High | ✅ Complete | FU-200 |
1127
- | FU-208 | Provider Integrations | 2 | P1 | Medium | High | ✅ Complete | FU-200 |
1128
- | FU-300 | UI Foundation | 3 | P0 | Medium | Medium | 🔨 Partial | None |
1129
- | FU-301 | Source List | 3 | P0 | Low | Medium | 🔨 Partial (needs refactor) | FU-300, MCP retrieve actions |
1130
- | FU-302 | Source Detail | 3 | P0 | Low | Medium | 🔨 Partial (needs refactor) | FU-300, MCP retrieve actions |
1131
- | FU-303 | Timeline View | 3 | P0 | Medium | Medium | ⏳ Not Started | FU-102, FU-300 |
1132
- | FU-304 | File Upload UI | 3 | P0 | Medium | Medium | 🔨 Partial | FU-205, FU-300 |
1133
- | FU-305 | Dashboard | 3 | P1 | Low | Low | ⏳ Not Started | FU-300, MCP retrieve actions |
1134
- | FU-306 | Settings UI | 3 | P2 | Low | Low | 🔨 Partial | FU-300 |
1135
- | FU-307 | Chat/AI Panel | 3 | P0 → EXCLUDED | Medium | High | ❌ EXCLUDED (Architectural Decision) | FU-202, FU-300 |
1136
- | FU-400 | Onboarding Welcome | 4 | P0 | Low | Low | ⏳ Not Started | FU-300 |
1137
- | FU-401 | Onboarding Progress | 4 | P0 | Low | Low | ⏳ Not Started | FU-205 |
1138
- | FU-402 | Onboarding Results | 4 | P0 | Low | Medium | ⏳ Not Started | FU-302 |
1139
- | FU-403 | Onboarding State | 4 | P0 | Low | Low | ⏳ Not Started | FU-400-402 |
1140
- | FU-500 | Plaid Link UI | 5 | Post-MVP | Medium | Medium | 🔨 Partial | FU-207, FU-300 |
1141
- | FU-501 | Provider Connectors UI | 5 | P1 | Medium | High | 🔨 Partial | FU-208, FU-300 |
1142
- | FU-600 | Advanced Search UI | 6 | P1 | Low | Medium | 🔨 Partial | FU-105, FU-301 |
1143
- | FU-601 | Entity Explorer | 6 | **P0** (from P2) | Low | Medium | ⏳ Not Started (prototype exists) | FU-101, FU-300 |
1144
- | FU-700 | Authentication UI | 7 | P0 | High | Medium | 🔨 Partial | None |
1145
- | FU-701 | RLS Implementation | 7 | P0 | High | Medium | ⏳ Not Started | FU-700, FU-000 |
1146
- | FU-703 | Local Storage / Offline Mode | 7 | P0 | Medium | High | ✅ Complete | FU-001 |
1147
- | FU-702 | Billing and Subscription | 7 | P1 | Medium | High | ⏳ Not Started | FU-700, FU-701 |
1148
- | FU-800 | Technical Metrics (Prometheus) | 8 | P1 | Low | Medium | ⏳ Not Started | All FUs |
1149
- | FU-803 | Product Analytics (PostHog) | 8 | P1 | Low | Low | ⏳ Not Started | FU-700 |
1150
- | FU-801 | Logging | 8 | P1 | Low | Low | 🔨 Partial | None |
1151
- | FU-802 | Tracing | 8 | P2 | Low | Medium | ⏳ Not Started | FU-801 |
1152
- | FU-900 | Error Handling UI | 9 | P1 | Low | Low | 🔨 Partial | FU-300 |
1153
- | FU-901 | Loading States | 9 | P1 | Low | Low | 🔨 Partial | FU-300 |
1154
- | FU-902 | Empty States | 9 | P1 | Low | Low | 🔨 Partial | FU-300 |
1155
- | FU-903 | A11y Audit | 9 | P1 | Low | Medium | ⏳ Not Started | All UI FUs |
1156
- | FU-904 | i18n Setup | 9 | P2 | Low | Medium | ⏳ Not Started | All UI FUs |
1157
- \*All P0 features required for MVP (includes multi-user support for Tier 1 founders & small teams)
1158
- ## Execution Roadmap
1159
- ### Minimum Viable MVP (P0 Only, Multi-User Support)
1160
- **Complete:**
1161
- - ✅ Phases 0-2 (infrastructure, services, MCP) — mostly done
1162
- - ✅ Phase 3 core UI (list, detail, chat) — mostly done
1163
- **Remaining P0 Work:**
1164
- 1. **FU-101:** Complete entity resolution with canonical IDs (MVP-critical competitive differentiator)
1165
- 2. **FU-102:** Complete event generation service (MVP-critical competitive differentiator: timelines)
1166
- 3. **FU-103:** Harden graph builder (zero orphans enforcement)
1167
- 4. **FU-105:** Add deterministic ranking to search
1168
- 5. **FU-303:** Build timeline view UI
1169
- 6. **FU-304:** Dedicated upload UI with bulk upload support
1170
- 7. **FU-400-403:** Complete onboarding flow (4 Feature Units)
1171
- 8. **FU-700:** Authentication UI (OAuth)
1172
- 9. **FU-701:** Row-Level Security (RLS) for data isolation (MVP-critical for privacy/control positioning)
1173
- **Note:** FU-703 (Local Storage / Offline Mode) is already complete.
1174
- **Competitive Rationale:** FU-101 (Entity Resolution) and FU-102 (Timelines) are MVP-critical because they validate Neotoma's competitive differentiation. Provider memory (ChatGPT, Claude, Gemini) is conversation-only and doesn't offer entity resolution or timelines across personal data. These features demonstrate Neotoma's structured personal data memory vs. conversation-only provider memory.
1175
- **Remaining P1 Work (Revenue Critical):** 10. **FU-702:** Billing and Subscription Management (enables M2: €5k MRR)
1176
- **Estimated:** 10-11 P0 Feature Units remaining + 1 P1 Feature Unit (billing) for revenue-enabled MVP
1177
- **Note:** FU-703 (Local Storage / Offline Mode) is already complete, bringing total P0 FUs to 11-12 (including complete ones).
1178
- **Multi-User Rationale:** Multi-user support (FU-700, FU-701) is required for Tier 1 ICP \"AI-Native Founders & Small Teams (2–20 people)\". These users initially adopt individually, then expand to team usage organically, enabling bottom-up B2B expansion and higher ACVs (€3k–€15k/yr per team). See [`docs/specs/ICP_PRIORITY_TIERS.md`](./ICP_PRIORITY_TIERS.md) and [`docs/private/strategy_governance/revenue_timeline.md`](../private/strategy_governance/revenue_timeline.md).
1179
- ### Full MVP (P0 + P1)
1180
- **Additional P1 Work:** 8. **FU-305:** Dashboard view 9. **FU-501:** Provider connectors UI 10. **FU-600:** Advanced search UI 12. **FU-702:** Billing and Subscription Management (revenue critical) 13. **FU-800:** Technical metrics (Prometheus) instrumentation 14. **FU-803:** Product analytics (PostHog/Mixpanel) integration 14. **FU-801:** Complete structured logging 15. **FU-900-902:** Polish (error handling, loading, empty states) 16. **FU-903:** A11y audit and fixes
1181
- **Estimated:** Additional 9-10 Feature Units for full MVP (includes billing)
1182
- ## Critical Path for MVP Launch
1183
- **Execution Order (P0 Only):**
1184
- ```mermaid
1185
- %%{init: {'theme':'neutral'}}%%
1186
- graph TD
1187
- FU101[FU-101: Entity Resolution] --> FU103[FU-103: Graph Builder]
1188
- FU102[FU-102: Event Generation] --> FU103
1189
- FU103 --> FU105[FU-105: Deterministic Search]
1190
- FU105 --> FU303[FU-303: Timeline View]
1191
- FU205[FU-205: upload_file MCP<br/>✅ Complete] --> FU304[FU-304: Upload UI]
1192
- FU300[FU-300: UI Foundation<br/>🔨 Partial] --> FU301[FU-301: Source List<br/>🔨 Partial]
1193
- FU300 --> FU302[FU-302: Source Detail<br/>🔨 Partial]
1194
- FU300 --> FU400[FU-400: Welcome Screen]
1195
- FU101[FU-101: Entity Resolution<br/>🔨 Partial] --> FU601[FU-601: Entity Explorer<br/>⏳ Not Started<br/>P0]
1196
- FU300 --> FU601
1197
- FU304 --> FU401[FU-401: Processing Indicator]
1198
- FU401 --> FU402[FU-402: Extraction Results]
1199
- FU302 --> FU402
1200
- FU303 --> FU402
1201
- FU400 --> FU403[FU-403: Onboarding State]
1202
- FU401 --> FU403
1203
- FU402 --> FU403
1204
- FU403 --> FU700[FU-700: Authentication UI]
1205
- FU700 --> FU701[FU-701: RLS Implementation]
1206
- FU701 --> Launch[MVP Launch Ready]
1207
- FU301 --> Launch
1208
- FU302 --> Launch
1209
- FU303 --> Launch
1210
- FU304 --> Launch
1211
- FU601 --> Launch
1212
- style FU101 fill:#fff4e6
1213
- style FU102 fill:#fff4e6
1214
- style FU103 fill:#fff4e6
1215
- style FU105 fill:#fff4e6
1216
- style FU301 fill:#ffe6e6
1217
- style FU302 fill:#ffe6e6
1218
- style FU601 fill:#ffcccc
1219
- style FU301 fill:#ffe6e6
1220
- style FU302 fill:#ffe6e6
1221
- style FU303 fill:#ffe6e6
1222
- style FU601 fill:#ffcccc
1223
- style FU304 fill:#ffe6e6
1224
- style FU400 fill:#ffe6e6
1225
- style FU401 fill:#ffe6e6
1226
- style FU402 fill:#ffe6e6
1227
- style FU403 fill:#ffe6e6
1228
- style Launch fill:#e6ffe6
1229
- ```
1230
- **Critical Path (8 Feature Units):**
1231
- 1. FU-101: Entity Resolution (2-3 days)
1232
- 2. FU-102: Event Generation (2-3 days)
1233
- 3. FU-103: Graph Builder Hardening (1-2 days)
1234
- 4. FU-105: Deterministic Search (1-2 days)
1235
- 5. FU-303: Timeline View UI (3-4 days)
1236
- 6. FU-304: Upload UI (2-3 days)
1237
- 7. FU-400-402: Onboarding Screens (4-5 days)
1238
- 8. FU-403: Onboarding State (1-2 days)
1239
- **Note:** FU-703 (Local Storage / Offline Mode) is already complete and not on critical path.
1240
- **Total Estimated:** 16-24 developer-days for minimal MVP
1241
- ## Cursor Agent Execution Estimates
1242
- ### Methodology
1243
- Estimates account for:
1244
- - **Spec writing:** Following `feature_unit_spec.md` template (1-3 hours per FU)
1245
- - **Implementation:** Code changes (2-8 hours per FU depending on complexity)
1246
- - **Testing:** Unit + integration + E2E (1-4 hours per FU)
1247
- - **Documentation:** Updates to subsystem docs (0.5-1 hour per FU)
1248
- - **Review cycles:** Iteration on spec/code (assume 1-2 cycles, 20% overhead)
1249
- **Agent efficiency factors:**
1250
- - ✅ **Accelerators:** Templates exist, architecture documented, patterns established
1251
- - ⚠️ **Slowdowns:** High-risk FUs require careful review, determinism testing is thorough, cross-FU dependencies
1252
- ### Human (Mark) Participation Model
1253
- Your involvement is modeled as **review and decision-making time** per Feature Unit, proportional to its risk and complexity:
1254
- - **Low-touch FU (simple UI / low-risk glue):**
1255
- - Examples: basic UI components, empty states, loading states.
1256
- - **Your time:** ~0.25–0.5 hours (15–30 minutes) per FU for spec skim + single-pass code review.
1257
- - **Medium-touch FU (non-trivial logic, moderate risk):**
1258
- - Examples: new UI views, search UI, onboarding flow, metrics/logging.
1259
- - **Your time:** ~0.5–1.0 hours per FU for spec review, code review, and 1 iteration.
1260
- - **High-touch FU (schema, security, graph, auth, RLS):**
1261
- - Examples: entities/events tables, graph builder, auth/RLS, tracing, i18n.
1262
- - **Your time:** ~1.5–2.5 hours per FU for deep spec design, migration review, and 1–2 code iterations.
1263
- This yields approximate **human time per FU**:
1264
- - **Low complexity + low risk:** 0.25–0.5h
1265
- - **Medium complexity and/or medium risk:** 0.5–1.0h
1266
- - **High complexity and/or high risk:** 1.5–2.5h
1267
- These ranges are applied to the scenarios below.
1268
- ### Summary by Scenario
1269
- #### Scenario A: Minimal MVP (P0 Only, Multi-User Support)
1270
- **Remaining P0 Work:**
1271
- - Phase 3: FU-300 (design system completion) → 3-4 hours
1272
- - Phase 1: FU-101, FU-102, FU-103, FU-105 → 16-22 hours
1273
- - Phase 3: FU-303, FU-304 → 9-11 hours (includes bulk upload)
1274
- - Phase 4: FU-400, FU-401, FU-402, FU-403 → 9-13 hours
1275
- - Phase 7: FU-700, FU-701 → 9-11 hours (auth + RLS)
1276
- **Note:** FU-703 (Local Storage / Offline Mode) is already complete (✅).
1277
- **Agent Total:** 46-61 hours
1278
- **Your Time (by touch intensity):**
1279
- - Phase 3: 1 low-touch (FU-300 design system) → ~0.25–0.5h
1280
- - Phase 1: 2 high-touch (FU-101, FU-102), 2 medium-touch (FU-103, FU-105) → ~4.5–7h
1281
- - Phase 3: 2 medium-touch (FU-303, FU-304) → ~1–2h
1282
- - Phase 4: 1 medium-touch (FU-402), 3 low-touch (FU-400, FU-401, FU-403) → ~1.5–3h
1283
- - Phase 7: 2 high-touch (FU-700, FU-701) → ~3–5h
1284
- **Your Total:** ~10.25–17.5 hours
1285
- **Calendar:** 5-7 days (8-hour agent workdays with your reviews interleaved)
1286
- **FUs Complete:** 30/40 (75%)
1287
- #### Scenario B: Full MVP (P0 + P1, Multi-User Support) — RECOMMENDED
1288
- **Scenario A PLUS:**
1289
- - Phase 3: FU-305, FU-306 → 6-8 hours
1290
- - Phase 5: FU-501 → 5-6 hours (FU-500 Plaid UI moved to post-MVP)
1291
- - Phase 6: FU-600 → 4-5 hours
1292
- - Phase 7: FU-702 → 12-16 hours (billing, revenue critical)
1293
- - Phase 8: FU-800, FU-801 → 10-13 hours
1294
- - Phase 9: FU-900, FU-901, FU-902, FU-903 → 11-15 hours
1295
- **Agent Total:** 91-120 hours
1296
- **Your Time (by touch intensity):**
1297
- - Scenario A subset: ~10–17h (from above)
1298
- - Phase 3 (P1): FU-305, FU-306 → 2 low/medium-touch FUs → ~1–2h
1299
- - Phase 5: FU-501 (high) → ~1.5–2h (FU-500 Plaid UI moved to post-MVP)
1300
- - Phase 6: FU-600 (medium) → ~0.5–1h
1301
- - Phase 7: FU-702 (high) → ~2–3.5h (billing, revenue critical, requires careful review)
1302
- - Phase 8: FU-800 (high), FU-801 (medium) → ~2–3.5h
1303
- - Phase 9: FU-900, FU-901, FU-902 (low/medium), FU-903 (medium/high) → ~2–4h
1304
- **Your Total:** ~20–32 hours
1305
- **Calendar:** 10-13 days
1306
- **FUs Complete:** 38/40 (95%)
1307
- #### Scenario C: Full MVP (P0 + P1, Multi-User) — Same as Scenario B
1308
- **Note:** Multi-user support (FU-700, FU-701) is now included in Scenario A and B as P0 requirements. Scenario C is identical to Scenario B.
1309
- ### Execution Timeline
1310
- **Note:** For detailed week-by-week execution plans with Cursor commands and step-by-step workflows, see [`docs/specs/MVP_EXECUTION_PLAN.md`](./MVP_EXECUTION_PLAN.md).
1311
- **High-Level Timeline:**
1312
- - **Minimal MVP:** 7-9 days (5-7 days implementation + 1-2 days cleanup)
1313
- - **Full MVP:** 12-15 days (10-13 days implementation + 1-2 days cleanup)
1314
- **Velocity:** 2-3 FUs/day sustained, 8-10 agent-hours/day
1315
- **Risk Buffer:** Add 20-30% for unforeseen complexity and review iterations.
1316
- ## Feature Unit Specifications
1317
- Each Feature Unit requires:
1318
- - **Spec Document:** Full specification following `docs/feature_units/standards/feature_unit_spec.md`
1319
- - **Manifest:** YAML manifest following `docs/feature_units/standards/manifest_template.yaml`
1320
- - **Implementation:** Code changes
1321
- - **Tests:** Unit + integration + E2E
1322
- - **Documentation:** Updates to subsystem docs if patterns change
1323
- **Template Location:** `docs/feature_units/standards/`
1324
- **Completed Feature Units:** Store in `docs/feature_units/completed/FU-XXX/`
1325
- ## Risks and Mitigations
1326
- **Note:** For tactical risk mitigation processes and step-by-step review workflows, see [`docs/specs/MVP_EXECUTION_PLAN.md`](./MVP_EXECUTION_PLAN.md) section "Risk Mitigation".
1327
- ### High-Risk Feature Units
1328
- | FU | Risk Category | Strategic Mitigation |
1329
- | ------ | ------------------- | ------------------------------------------------------------- |
1330
- | FU-000 | Data loss (schema) | Test migrations, backups, rollback plan |
1331
- | FU-001 | Security (crypto) | Security audit, key management best practices |
1332
- | FU-100 | Extraction accuracy | Test fixtures, manual validation, schema detection tests |
1333
- | FU-103 | Graph integrity | Transactional inserts, orphan detection, integrity tests |
1334
- | FU-200 | MCP contracts | Versioning, backward compatibility tests, contract validation |
1335
- | FU-205 | File ingestion | Deduplication, content hashing, retry logic |
1336
- | FU-700 | Auth security | Penetration testing, session management, token validation |
1337
- | FU-701 | RLS isolation | Multi-user tests, data leak tests |
1338
- **Strategic Mitigation Approach:**
1339
- - All high-risk FUs require tech lead + 2 reviewer approval
1340
- - Staging deployment before production
1341
- - Real-time monitoring post-launch
1342
- - Rollback plan documented
1343
- ## MVP Launch Checklist
1344
- **Note:** For detailed launch readiness checklist with tactical verification steps, see [`docs/specs/MVP_EXECUTION_PLAN.md`](./MVP_EXECUTION_PLAN.md) section "Success Criteria".
1345
- **Strategic Checklist:**
1346
- **Technical Readiness:**
1347
- - [ ] All P0 Feature Units complete (including FU-700, FU-701 for multi-user)
1348
- - [ ] All critical path tests passing (100% coverage)
1349
- - [ ] Graph integrity verified (0 orphans, 0 cycles)
1350
- - [ ] Multi-user isolation verified (RLS policies tested)
1351
- - [ ] Bulk upload tested (50+ files)
1352
- - [ ] Post-MVP features disabled/flagged (semantic search, Plaid, X, Instagram)
1353
- **Product Readiness:**
1354
- - [ ] Onboarding flow complete
1355
- - [ ] Core workflows functional (upload → extraction → timeline → AI query)
1356
- - [ ] Empty states handled
1357
- - [ ] Error states handled with retry
1358
- **Acceptance Criteria:**
1359
- - [ ] > 60% first-upload activation rate
1360
- - [ ] > 95% upload success rate
1361
- - [ ] <5s P95 upload latency
1362
- - [ ] > 80% extraction success rate
1363
- - [ ] 0 orphan nodes
1364
- - [ ] 0 nondeterminism violations
1365
- - [ ] <2% MCP hallucination rate
1366
- **See:** `docs/specs/METRICS_REQUIREMENTS.md` for complete criteria
1367
- ## Post-MVP Roadmap (v1.1+)
1368
- **P2 Feature Units (Nice-to-Have):**
1369
- - FU-306: Full settings UI
1370
- - FU-601: Entity explorer
1371
- - FU-802: Distributed tracing
1372
- - FU-904: Full i18n
1373
- **Future Enhancements:**
1374
- - LLM-assisted extraction (with deterministic fallback)
1375
- - Semantic search (hybrid)
1376
- - Real-time collaboration (async multi-user in MVP)
1377
- - Team invitation and workspace management UI
1378
- - Mobile app
1379
- - Advanced analytics
1380
- ## Detailed Documentation References
1381
- **For strategic planning and tracking:**
1382
- - This document (MVP_FEATURE_UNITS.md) — Complete Feature Unit inventory, estimates, dependencies
1383
- **For tactical execution in Cursor:**
1384
- - [`docs/specs/MVP_EXECUTION_PLAN.md`](./MVP_EXECUTION_PLAN.md) — Step-by-step Cursor command workflows, daily execution patterns
1385
- **For creating Feature Unit specs:**
1386
- - [`docs/feature_units/standards/feature_unit_spec.md`](../feature_units/standards/feature_unit_spec.md) — Spec template
1387
- - [`docs/feature_units/standards/manifest_template.yaml`](../feature_units/standards/manifest_template.yaml) — Manifest format
1388
- - [`docs/feature_units/standards/execution_instructions.md`](../feature_units/standards/execution_instructions.md) — Implementation flow
1389
- - [`docs/NEOTOMA_MANIFEST.md`](../NEOTOMA_MANIFEST.md) — Architectural constraints
1390
- - [`docs/specs/IMPLEMENTATION_OVERWRITE_GUIDE.md`](./IMPLEMENTATION_OVERWRITE_GUIDE.md) — **Required code changes to comply with manifest**
1391
- - [`docs/specs/METRICS_REQUIREMENTS.md`](./METRICS_REQUIREMENTS.md) — Success metrics
1392
- ## Cursor Agent Execution Estimates
1393
- ### Methodology
1394
- Estimates account for:
1395
- - **Spec writing:** Following `feature_unit_spec.md` template (1-3 hours per FU)
1396
- - **Implementation:** Code changes (2-8 hours per FU depending on complexity)
1397
- - **Testing:** Unit + integration + E2E (1-4 hours per FU)
1398
- - **Documentation:** Updates to subsystem docs (0.5-1 hour per FU)
1399
- - **Review cycles:** Iteration on spec/code (assume 1-2 cycles, 20% overhead)
1400
- **Agent efficiency factors:**
1401
- - ✅ **Accelerators:** Templates exist, architecture documented, patterns established
1402
- - ⚠️ **Slowdowns:** High-risk FUs require careful review, determinism testing is thorough, cross-FU dependencies
1403
- ### Phase-by-Phase Estimates
1404
- #### Phase 0: Foundation (✅ COMPLETE)
1405
- **Status:** All infrastructure in place
1406
- **Agent Time:** 0 hours (already done)
1407
- #### Phase 1: Core Services
1408
- **Remaining Work:**
1409
- - **FU-101: Entity Resolution** — ⏳ NEW (not yet implemented)
1410
- - Create `entities` table schema
1411
- - Implement `generateEntityId()` (hash-based)
1412
- - Implement `normalizeEntityValue()` with type-specific rules
1413
- - Entity extraction from `properties` fields (vendor_name, full_name, etc.)
1414
- - Entity-record edge insertion (transactional)
1415
- - Migration to add entities table
1416
- - **Agent Estimate:** 6-8 hours (complex: new table + deterministic logic + migration)
1417
- - **FU-102: Event Generation** — ⏳ NEW (not yet implemented)
1418
- - Create `events` table schema
1419
- - Implement `generateEventId()` (hash-based)
1420
- - Date field detection per schema type
1421
- - Event type mapping (date_issued → InvoiceIssued)
1422
- - Event-record and event-entity edge insertion
1423
- - Migration to add events table
1424
- - **Agent Estimate:** 5-7 hours (similar to FU-101, slightly simpler)
1425
- - **FU-103: Graph Builder Hardening** — 🔨 PARTIAL (basic inserts exist, needs integrity)
1426
- - Wrap all graph inserts in transactions
1427
- - Add orphan node detection query
1428
- - Add cycle detection query
1429
- - Enforce referential integrity
1430
- - Add pre-commit hooks for integrity checks
1431
- - **Agent Estimate:** 3-4 hours (mostly testing and constraint enforcement)
1432
- - **FU-105: Deterministic Search** — 🔨 PARTIAL (search exists, needs ranking)
1433
- - Implement deterministic ranking algorithm with tiebreakers
1434
- - Add tests for ranking consistency (100 runs → same order)
1435
- - Document ranking logic
1436
- - **Agent Estimate:** 2-3 hours (algorithm + tests)
1437
- **Phase 1 Total:** 16-22 agent-hours
1438
- #### Phase 2: MCP Layer (✅ COMPLETE)
1439
- **Status:** All 12 actions implemented and tested
1440
- **Agent Time:** 0 hours (already done)
1441
- #### Phase 3: UI Layer
1442
- **Remaining Work:**
1443
- - **FU-303: Timeline View** — ⏳ NEW
1444
- - Create TimelineView component
1445
- - Fetch events via MCP or API
1446
- - Chronological sorting UI
1447
- - Date grouping (day/month/year headers)
1448
- - Click event → navigate to record
1449
- - Filter by date range
1450
- - Virtualized scrolling (react-window)
1451
- - **Agent Estimate:** 5-6 hours (new component, moderate complexity)
1452
- - **FU-304: Upload UI Enhancement** — 🔨 PARTIAL (upload in ChatPanel, needs dedicated page)
1453
- - Extract upload from ChatPanel into standalone component
1454
- - Create dedicated /upload route
1455
- - Enhanced drag-drop zone
1456
- - **Bulk upload support** (multiple files, folder import)
1457
- - **Upload queue management** (track multiple uploads)
1458
- - **Progress tracking** (per-file and overall)
1459
- - **Resume on failure** (retry failed uploads)
1460
- - **Agent Estimate:** 4-5 hours (refactor + bulk upload features)
1461
- - **FU-305: Dashboard** — ⏳ NEW
1462
- - Create Dashboard component
1463
- - Stats widgets (total records/entities/events)
1464
- - Recent records widget
1465
- - Quick actions
1466
- - **Agent Estimate:** 3-4 hours (straightforward aggregation UI)
1467
- - **FU-306: Settings UI** — 🔨 PARTIAL (FloatingSettingsButton exists, needs full page)
1468
- - Create Settings page
1469
- - Locale selector
1470
- - Theme toggle
1471
- - Connected integrations list
1472
- - **Agent Estimate:** 3-4 hours (form UI)
1473
- **Phase 3 Total:** 17-22 agent-hours (includes FU-300 design system completion)
1474
- #### Phase 4: Onboarding Flow
1475
- **All NEW:**
1476
- - **FU-400: Welcome Screen** — ⏳
1477
- - Create WelcomeScreen component
1478
- - Copy and layout per spec
1479
- - CTA button → upload
1480
- - Skip link for returning users
1481
- - **Agent Estimate:** 2-3 hours (simple static screen)
1482
- - **FU-401: Processing Indicator** — ⏳
1483
- - Create ProcessingIndicator component
1484
- - Step-by-step progress (5 steps)
1485
- - Live region for screen readers
1486
- - Timeout handling
1487
- - **Agent Estimate:** 2-3 hours (progress UI + accessibility)
1488
- - **FU-402: Extraction Results** — ⏳
1489
- - Create ExtractionResults component
1490
- - Display fields, entities, events
1491
- - Entity highlighting
1492
- - CTAs (View Timeline, Upload Another, Ask AI)
1493
- - **Agent Estimate:** 3-4 hours (layout + data display)
1494
- - **FU-403: Onboarding State** — ⏳
1495
- - Create useOnboardingState hook
1496
- - localStorage persistence
1497
- - Milestone tracking
1498
- - Resume logic
1499
- - Completion detection
1500
- - **Agent Estimate:** 2-3 hours (state management)
1501
- **Phase 4 Total:** 9-13 agent-hours
1502
- #### Phase 5: Integrations (Post-MVP: FU-500 Plaid UI)
1503
- **Remaining Work:**
1504
- - **FU-500: Plaid Link UI** — 🔨 PARTIAL (POST-MVP, Tier 3+ use case)
1505
- - PlaidLink component (use Plaid SDK)
1506
- - OAuth flow handling
1507
- - Success/error callbacks
1508
- - Connected accounts display
1509
- - **Agent Estimate:** 4-5 hours (third-party SDK integration)
1510
- - **Note:** Moved to post-MVP. Plaid serves Tier 3+ ICPs (Cross-Border Solopreneurs, Agentic Portfolio), not Tier 1 MVP targets.
1511
- - **FU-501: Provider Connectors UI** — 🔨 PARTIAL (catalog exists, UI TBD)
1512
- - ProviderCatalog component
1513
- - Connect button per provider
1514
- - OAuth flow routing
1515
- - Sync trigger UI
1516
- - **Agent Estimate:** 5-6 hours (multiple providers, OAuth complexity)
1517
- **Phase 5 Total:** 9-11 agent-hours
1518
- #### Phase 6: Search and Discovery
1519
- **Remaining Work:**
1520
- - **FU-600: Advanced Search UI** — 🔨 PARTIAL (basic search exists, needs enhancement)
1521
- - Advanced filter panel (date range, property filters)
1522
- - Search mode toggle (keyword/semantic/both)
1523
- - Auto-complete suggestions
1524
- - Result highlighting
1525
- - **Agent Estimate:** 4-5 hours (enhancement to existing)
1526
- - **FU-601: Entity Explorer** — ⏳ NEW (P2, optional for MVP)
1527
- - EntityList component
1528
- - EntityDetail component
1529
- - Graph visualization (optional)
1530
- - **Agent Estimate:** 5-6 hours (new feature area)
1531
- **Phase 6 Total (P1 only):** 4-5 agent-hours (excluding P2 FU-601)
1532
- #### Phase 7: Auth and Multi-User (Required for MVP)
1533
- **Required for Tier 1 founders & small teams (2–20 people):**
1534
- - **FU-700: Authentication UI** — 🔨 PARTIAL
1535
- - Signup/signin forms
1536
- - Password reset flow
1537
- - OAuth buttons
1538
- - Session management
1539
- - **Agent Estimate:** 4-5 hours (OAuth integration)
1540
- - **Rationale:** Enables Tier 1 small team ICP; individual adoption → team expansion; supports mid-market ACVs (€3k–€15k/yr)
1541
- - **FU-701: RLS Implementation** — ⏳ NEW
1542
- - Add user_id column to records
1543
- - Create RLS policies
1544
- - Migration with backfill
1545
- - Update all queries to filter by user
1546
- - **Agent Estimate:** 5-6 hours (high-risk schema change + testing)
1547
- - **Rationale:** Data isolation required for team support; enables bottom-up B2B expansion
1548
- - **FU-702: Billing and Subscription Management** — ⏳ NEW (P1, Revenue Critical)
1549
- - Stripe integration (subscriptions, invoices, webhooks)
1550
- - Subscription management (create, update, cancel)
1551
- - Billing plans (individual: €250–€1,250/month, team: €500–€2,500/month)
1552
- - Invoice generation and history
1553
- - Usage tracking (records, API calls, storage)
1554
- - Billing UI (subscription management, invoices, usage dashboard)
1555
- - **Agent Estimate:** 12-16 hours (high complexity: Stripe integration + UI + usage tracking)
1556
- - **Rationale:** Required for revenue collection to meet M2 milestone (€5k MRR by Jan 10, 2026). Enables Tier 1 ICPs to pay after experiencing value. See [`docs/feature_units/completed/FU-702/billing_spec.md`](../feature_units/completed/FU-702/billing_spec.md) for full specification.
1557
- **Phase 7 Total:** 21-27 agent-hours (9-11 for P0 auth/RLS + 12-16 for P1 billing)
1558
- **Note:** Multi-user support (FU-700, FU-701) is P0 for MVP because Tier 1 includes "AI-Native Founders & Small Teams" who need team functionality. Billing (FU-702) is P1 but revenue-critical for M2 milestone. See [`docs/specs/ICP_PROFILES.md`](./ICP_PROFILES.md) section 3 for detailed small team ICP profile.
1559
- #### Phase 8: Observability
1560
- **Remaining Work:**
1561
- - **FU-800: Technical Metrics (Prometheus)** — ⏳ NEW (P1)
1562
- - Add Prometheus client library
1563
- - Instrument all MCP actions (8 MVP actions × counters + histograms)
1564
- - Instrument ingestion pipeline (duration, success rate)
1565
- - Instrument search (latency, result counts)
1566
- - Instrument graph operations (orphan detection, integrity)
1567
- - Create /metrics endpoint for Prometheus scraping
1568
- - Set up Grafana dashboards (real-time operations, graph health)
1569
- - **Agent Estimate:** 6-8 hours (cross-cutting, touches many files)
1570
- - **FU-803: Product Analytics (PostHog/Mixpanel)** — ⏳ NEW (P1)
1571
- - Integrate PostHog (recommended) or Mixpanel
1572
- - Track user events (signup, upload, extraction, entity view, timeline view, search, AI query)
1573
- - Set up funnel analysis (signup → upload → extraction → entity → timeline)
1574
- - Configure retention cohort tracking (day 1, week 1, month 1)
1575
- - Create product health dashboard (DAU/WAU/MAU, activation rates)
1576
- - **Agent Estimate:** 3-4 hours (event tracking, dashboard setup)
1577
- - **Rationale:** Product analytics (activation, retention, funnels) requires different tooling than technical metrics. PostHog provides open-source alternative to Mixpanel.
1578
- - **FU-801: Structured Logging** — 🔨 PARTIAL (console.log exists, needs structure)
1579
- - Add Winston or Pino
1580
- - Convert all console.log to structured logs
1581
- - Add PII filtering
1582
- - Add trace_id injection
1583
- - **Agent Estimate:** 4-5 hours (refactor existing logs)
1584
- - **FU-802: Distributed Tracing** — ⏳ NEW (P2, optional)
1585
- - OpenTelemetry setup
1586
- - Span instrumentation
1587
- - Trace propagation
1588
- - **Agent Estimate:** 6-7 hours (new infrastructure)
1589
- **Phase 8 Total (P1 only):** 13-17 agent-hours
1590
- #### Phase 9: Polish and Hardening
1591
- **Remaining Work:**
1592
- - **FU-900: Error Handling UI** — 🔨 PARTIAL (toast exists, needs error boundary)
1593
- - React Error Boundary component
1594
- - Enhance error messages
1595
- - Retry mechanisms
1596
- - **Agent Estimate:** 2-3 hours (polish existing)
1597
- - **FU-901: Loading States** — 🔨 PARTIAL
1598
- - Skeleton loaders for all views
1599
- - Consistent spinner usage
1600
- - Progress bars
1601
- - **Agent Estimate:** 2-3 hours (UI polish)
1602
- - **FU-902: Empty States** — 🔨 PARTIAL
1603
- - Empty state for all views
1604
- - Consistent messaging
1605
- - CTAs in empty states
1606
- - **Agent Estimate:** 2-3 hours (UI polish)
1607
- - **FU-903: A11y Audit** — ⏳ NEW (P1)
1608
- - Install jest-axe
1609
- - Run on all components
1610
- - Fix violations
1611
- - Keyboard nav audit
1612
- - **Agent Estimate:** 5-6 hours (testing + fixes across many components)
1613
- - **FU-904: i18n Setup** — ⏳ NEW (P2, optional)
1614
- - react-i18next setup
1615
- - Extract all UI strings
1616
- - Translation files (en, es, fr)
1617
- - Locale detection and switching
1618
- - **Agent Estimate:** 6-8 hours (cross-cutting refactor)
1619
- **Phase 9 Total (P1 only):** 11-15 agent-hours (excluding P2 FU-904)
1620
- ### Summary by Scenario
1621
- #### Scenario A: Minimal MVP (P0 Only, Single-User)
1622
- **Remaining P0 Work:**
1623
- - Phase 1: FU-101, FU-102, FU-103, FU-105 → 16-22 hours
1624
- - Phase 3: FU-303, FU-304 → 8-10 hours
1625
- - Phase 4: FU-400, FU-401, FU-402, FU-403 → 9-13 hours
1626
- **Total Estimate:** 33-45 agent-hours
1627
- **Calendar Time:** 4-6 days (assuming 8-hour agent workdays with review cycles)
1628
- **Deliverables:**
1629
- - Entities and events fully implemented
1630
- - Timeline view functional
1631
- - Upload UI polished
1632
- - Onboarding flow complete
1633
- - Core workflows end-to-end (upload → extraction → timeline → AI query)
1634
- #### Scenario B: Full MVP (P0 + P1, Single-User)
1635
- **Scenario A work PLUS:**
1636
- - Phase 3: FU-305, FU-306 → 6-8 hours
1637
- - Phase 5: FU-501 → 5-6 hours (FU-500 Plaid UI moved to post-MVP)
1638
- - Phase 6: FU-600 → 4-5 hours
1639
- - Phase 8: FU-800, FU-801 → 10-13 hours
1640
- - Phase 9: FU-900, FU-901, FU-902, FU-903 → 11-15 hours
1641
- **Additional P1 Work:** 40-52 hours
1642
- **Total Estimate:** 73-97 agent-hours
1643
- **Calendar Time:** 9-12 days (8-hour agent workdays)
1644
- **Deliverables:**
1645
- - Everything in Scenario A
1646
- - Dashboard and settings UI
1647
- - Provider integrations UI (Plaid UI moved to post-MVP)
1648
- - Advanced search
1649
- - Metrics and structured logging
1650
- - Full error/loading/empty state polish
1651
- - A11y audit complete
1652
- #### Scenario C: Full MVP (P0 + P1, Multi-User) — Same as Scenario B
1653
- **Note:** Scenario B already includes multi-user support (FU-700, FU-701) and billing (FU-702). Scenario C is identical to Scenario B.
1654
- ### Agent Execution Assumptions
1655
- **What Agents Excel At (Fast):**
1656
- - Boilerplate generation (components, schemas, types)
1657
- - Test scaffolding (unit, integration, E2E templates)
1658
- - Documentation updates (cross-referencing, consistency)
1659
- - Pattern replication (similar to existing components)
1660
- - Configuration changes (low-risk)
1661
- **What Requires More Agent Time (Slower):**
1662
- - **Novel algorithms** (entity ID generation, deterministic ranking) — needs iterative refinement
1663
- - **High-risk changes** (schema migrations, graph integrity) — requires multiple review passes
1664
- - **Cross-cutting refactors** (i18n, metrics) — touches many files
1665
- - **Third-party integrations** (Plaid UI, OAuth flows) — external dependencies
1666
- - **Accessibility compliance** (ARIA, keyboard nav) — requires domain knowledge
1667
- **Overhead Factors:**
1668
- - **Review cycles:** 20-30% overhead for spec approval, code review iterations
1669
- - **Testing thoroughness:** Determinism tests (100 runs), property-based tests add time
1670
- - **Documentation updates:** Every FU updates multiple docs (manifest, subsystem, context)
1671
- ### Detailed FU-by-FU Estimates
1672
- #### Critical Path (P0, Required for Minimal MVP)
1673
- | FU | Name | Complexity | Agent Hours | Notes |
1674
- | ------ | ---------------------------- | ---------- | ----------- | ----------------------------------------- |
1675
- | FU-101 | Entity Resolution | High | 6-8 | New table + deterministic IDs + migration |
1676
- | FU-102 | Event Generation | High | 5-7 | New table + date extraction + migration |
1677
- | FU-103 | Graph Builder | Medium | 3-4 | Transaction wrapping + integrity checks |
1678
- | FU-105 | Deterministic Search | Medium | 2-3 | Ranking algorithm + tiebreakers |
1679
- | FU-303 | Timeline View UI | Medium | 5-6 | New component + virtualization |
1680
- | FU-304 | Upload UI | Medium | 4-5 | Refactor + bulk upload features |
1681
- | FU-400 | Welcome Screen | Low | 2-3 | Static content component |
1682
- | FU-401 | Processing Indicator | Low | 2-3 | Progress UI + accessibility |
1683
- | FU-402 | Extraction Results | Medium | 3-4 | Layout + data display |
1684
- | FU-403 | Onboarding State | Low | 2-3 | State hook + persistence |
1685
- | FU-700 | Authentication UI | Medium | 4-5 | OAuth integration |
1686
- | FU-701 | RLS Implementation | High | 5-6 | Schema migration + RLS policies |
1687
- | FU-703 | Local Storage / Offline Mode | High | 0 | Already complete |
1688
- | FU-702 | Billing and Subscription | High | 12-16 | Stripe integration + UI + usage tracking |
1689
- **Subtotal:** 59-78 hours (43-57 P0 + 12-16 P1 billing)
1690
- **Note:** FU-703 (Local Storage / Offline Mode) is already complete (0 hours remaining).
1691
- #### P1 Work (Full MVP)
1692
- | FU | Name | Complexity | Agent Hours | Notes |
1693
- | ------ | ------------------------------ | ---------- | ----------- | -------------------------------------- | -------- |
1694
- | FU-305 | Dashboard | Low | 3-4 | Aggregation UI |
1695
- | FU-306 | Settings UI | Low | 3-4 | Form UI |
1696
- | FU-500 | Plaid Link UI | Medium | 4-5 | Third-party SDK | Post-MVP |
1697
- | FU-501 | Provider Connectors UI | High | 5-6 | Multiple OAuth flows |
1698
- | FU-600 | Advanced Search | Medium | 4-5 | Filter panel + enhancements |
1699
- | FU-800 | Technical Metrics (Prometheus) | Medium | 6-8 | Cross-cutting instrumentation |
1700
- | FU-803 | Product Analytics (PostHog) | Low | 3-4 | Event tracking + dashboards |
1701
- | FU-801 | Logging | Medium | 4-5 | Refactor to structured |
1702
- | FU-900 | Error Handling | Low | 2-3 | Error boundary + polish |
1703
- | FU-901 | Loading States | Low | 2-3 | Skeleton loaders |
1704
- | FU-902 | Empty States | Low | 2-3 | Empty state components |
1705
- | FU-903 | A11y Audit | Medium | 5-6 | jest-axe + fixes across all components |
1706
- **Subtotal:** 40-52 hours
1707
- #### P2 / Optional Work
1708
- | FU | Name | Complexity | Agent Hours | Notes |
1709
- | ------ | --------------- | ---------- | ----------- | ---------------------------------- |
1710
- | FU-601 | Entity Explorer | Medium | 5-6 | New feature area |
1711
- | FU-700 | Auth UI | Medium | 4-5 | OAuth forms |
1712
- | FU-701 | RLS | High | 5-6 | Schema migration + testing |
1713
- | FU-702 | Billing | High | 12-16 | Stripe integration + UI |
1714
- | FU-802 | Tracing | Medium | 6-7 | OpenTelemetry setup |
1715
- | FU-904 | i18n | High | 6-8 | Extract all strings + translations |
1716
- **Subtotal:** 38-48 hours
1717
- ### Execution Velocity Assumptions
1718
- **Cursor Agent Productivity:**
1719
- - **Fast FUs (Low complexity, no risk):** 2-4 hours
1720
- - **Medium FUs (Moderate complexity):** 4-6 hours
1721
- - **Complex FUs (High complexity or high risk):** 6-10 hours
1722
- **Daily Throughput:**
1723
- - **Aggressive:** 3-4 FUs/day (mix of fast + medium, 10-12 agent-hours)
1724
- - **Sustainable:** 2-3 FUs/day (8-10 agent-hours with review time)
1725
- - **Conservative:** 1-2 FUs/day (complex FUs with thorough testing, 6-8 hours)
1726
- **Bottlenecks:**
1727
- - **Human review:** High-risk FUs (schema, graph, auth) require tech lead approval
1728
- - **Sequential dependencies:** Can't parallelize FU-101 → FU-103 → FU-303
1729
- - **Testing thoroughness:** Determinism tests (100 runs) add time
1730
- - **Documentation updates:** Every FU triggers doc updates
1731
- ### Recommended Execution Strategy
1732
- **Note:** For detailed tactical execution plans with Cursor commands, step-by-step workflows, and manual vs agent time estimates, see [`docs/specs/MVP_EXECUTION_PLAN.md`](./MVP_EXECUTION_PLAN.md).
1733
- **High-Level Summary:**
1734
- #### Minimal MVP (P0 Only, Multi-User Support)
1735
- **Timeline:** 7-9 days (5-7 days implementation + 1-2 days cleanup)
1736
- - **Week 1:** Phase 1 (Core Services) — FU-101, FU-102, FU-103, FU-105
1737
- - **Week 2:** Phase 3 + Phase 4 + Phase 7 (UI, Onboarding, Auth/RLS) — FU-303, FU-304, FU-400-403, FU-700, FU-701
1738
- - **Cleanup:** Disable post-MVP features (semantic search, Plaid, X, Instagram)
1739
- **Total:** 10-17h manual, 43-57h agent, 1-2 days cleanup
1740
- #### Full MVP (P0 + P1, Multi-User Support)
1741
- **Timeline:** 12-15 days (10-13 days implementation + 1-2 days cleanup)
1742
- - **Week 1:** Phase 1 (Core Services)
1743
- - **Week 2:** Phase 3 + Phase 4 + Phase 7 (UI, Onboarding, Auth/RLS)
1744
- - **Week 3:** Phase 5 + Phase 6 + Phase 7 (Provider Integrations, Search, Billing)
1745
- - **Week 4:** Phase 8 + Phase 9 (Observability, Polish)
1746
- - **Cleanup:** Disable post-MVP features
1747
- **Total:** 19-30.5h manual, 74-99h agent, 1-2 days cleanup
1748
- **Key Differences from Previous Plan:**
1749
- - ✅ Includes Phase 7 (Auth/RLS) — required for multi-user support
1750
- - ✅ Includes cleanup phase — disable post-MVP features before launch
1751
- - ✅ More detailed with Cursor commands and step-by-step workflows (see MVP_EXECUTION_PLAN.md)
1752
- ### Total Effort Summary
1753
- | Scenario | Agent Hours | Calendar Days | FUs Complete | MVP Ready? |
1754
- | ---------------------------- | ----------- | ------------- | ------------ | ------------------------------------ |
1755
- | **Minimal (P0 only)** | 43-57 | 5-7 days | 30/40 (75%) | ✅ Yes (core workflows + multi-user) |
1756
- | **Full (P0+P1, multi-user)** | 79-104 | 10-13 days | 38/40 (95%) | ✅ Yes (polished + multi-user) |
1757
- | **Complete (P0+P1+P2)** | 108-140 | 14-18 days | 40/40 (100%) | ✅ Yes (all features) |
1758
- **Recommended Path:** Scenario B (Full MVP, multi-user) — 10-13 days, 79-104 agent-hours
1759
- ### Risk Buffer
1760
- **Add 20-30% for:**
1761
- - Unforeseen complexity in entity/event extraction
1762
- - Graph integrity edge cases
1763
- - Determinism test failures requiring fixes
1764
- - Human review feedback iterations
1765
- - Integration testing issues
1766
- - Cross-browser/device testing
1767
- **Adjusted Estimates:**
1768
- - **Minimal MVP:** 40-60 agent-hours (5-8 days)
1769
- - **Full MVP (P0+P1):** 88-125 agent-hours (11-16 days)
1770
- ### Parallelization Opportunities
1771
- **Note:** For detailed parallelization strategy with tactical execution guidance, see [`docs/specs/MVP_EXECUTION_PLAN.md`](./MVP_EXECUTION_PLAN.md) section "Parallelization Strategy".
1772
- **Strategic Overview:**
1773
- - Phase 4 (onboarding) + Phase 5 (integrations) — independent
1774
- - Phase 6 (search UI) + Phase 8 (observability) — independent
1775
- - Phase 9 FUs — mostly independent polish work
1776
- **Critical Dependencies (Cannot Parallelize):**
1777
- - FU-101 → FU-103 (entity resolution must complete before graph builder)
1778
- - FU-102 → FU-303 (events must exist before timeline UI)
1779
- - FU-103 → FU-105 (graph must be stable before search ranking)
1780
- - FU-700 → FU-701 (auth must exist before RLS)
1781
- - FU-701 → FU-702 (RLS must exist before billing)
1782
- **With 2 Cursor agents in parallel:** Could reduce calendar time by 25-35%.
1783
- ## Agent Instructions
1784
- ### When to Load This Document
1785
- Load when:
1786
- - Planning MVP implementation
1787
- - Sequencing Feature Unit work
1788
- - Understanding MVP scope and boundaries
1789
- - Assessing completion progress
1790
- - Prioritizing remaining work
1791
- - Reviewing Feature Unit inventory and estimates
1792
- ### Required Co-Loaded Documents
1793
- - `docs/NEOTOMA_MANIFEST.md` (architectural constraints)
1794
- - `docs/specs/MVP_OVERVIEW.md` (product context)
1795
- - `docs/specs/METRICS_REQUIREMENTS.md` (success criteria)
1796
- - `docs/feature_units/standards/feature_unit_spec.md` (how to write specs)
1797
- **For tactical execution:** Also load `docs/specs/MVP_EXECUTION_PLAN.md` for Cursor command workflows, step-by-step guidance, daily execution patterns, and tactical risk mitigation processes.
1798
- ### Strategic Constraints Agents Must Enforce
1799
- 1. All P0 Feature Units MUST be completed before MVP launch
1800
- 2. Feature Units MUST follow execution order (respect dependencies)
1801
- 3. All Feature Units MUST have specs before implementation
1802
- 4. All Feature Units MUST include tests
1803
- 5. High-risk Feature Units MUST have rollback plans
1804
- 6. Graph integrity MUST be maintained (0 orphans)
1805
- 7. Determinism MUST be verified for all data operations
1806
- ### Strategic Forbidden Patterns
1807
- - Starting downstream FU without completing dependencies
1808
- - Implementing without spec
1809
- - Skipping tests
1810
- - Violating Truth Layer boundaries in any FU
1811
- - Introducing nondeterminism
1812
- - Breaking backward compatibility
1813
- **Note:** For tactical constraints, Cursor command usage patterns, and daily execution workflows, see [`docs/specs/MVP_EXECUTION_PLAN.md`](./MVP_EXECUTION_PLAN.md) section "Agent Instructions".
1814
- ### Validation Checklist
1815
- - [ ] All P0 Feature Units identified
1816
- - [ ] Execution order respects dependencies
1817
- - [ ] Each FU has priority, risk, complexity assessed
1818
- - [ ] Critical path identified
1819
- - [ ] Completion criteria defined
1820
- - [ ] Acceptance criteria aligned with METRICS_REQUIREMENTS.md
1821
- - [ ] High-risk FUs have mitigation plans