@marinoscar/kvox-eval 0.0.0-bootstrap → 0.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE +21 -0
  3. package/README.md +166 -0
  4. package/dist/ask/index.d.ts +6 -0
  5. package/dist/ask/index.js +28 -0
  6. package/dist/ask/question-schema.d.ts +121 -0
  7. package/dist/ask/question-schema.js +167 -0
  8. package/dist/ask/report.d.ts +88 -0
  9. package/dist/ask/report.js +170 -0
  10. package/dist/ask/scorer.d.ts +104 -0
  11. package/dist/ask/scorer.js +164 -0
  12. package/dist/ask-run/ask-command.d.ts +62 -0
  13. package/dist/ask-run/ask-command.js +254 -0
  14. package/dist/ask-run/host/app.d.ts +65 -0
  15. package/dist/ask-run/host/app.js +146 -0
  16. package/dist/ask-run/host/db.d.ts +38 -0
  17. package/dist/ask-run/host/db.js +126 -0
  18. package/dist/ask-run/host/ports.d.ts +35 -0
  19. package/dist/ask-run/host/ports.js +113 -0
  20. package/dist/ask-run/index.d.ts +13 -0
  21. package/dist/ask-run/index.js +35 -0
  22. package/dist/ask-run/replay.d.ts +128 -0
  23. package/dist/ask-run/replay.js +212 -0
  24. package/dist/ask-run/run-ask-eval.d.ts +125 -0
  25. package/dist/ask-run/run-ask-eval.js +193 -0
  26. package/dist/ask-run/seed-golden-graph.d.ts +64 -0
  27. package/dist/ask-run/seed-golden-graph.js +495 -0
  28. package/dist/cli/index.d.ts +3 -0
  29. package/dist/cli/index.js +12 -0
  30. package/dist/cli/kg-command.d.ts +66 -0
  31. package/dist/cli/kg-command.js +238 -0
  32. package/dist/cli/main.d.ts +18 -0
  33. package/dist/cli/main.js +69 -0
  34. package/dist/fixtures/domains.d.ts +16 -0
  35. package/dist/fixtures/domains.js +33 -0
  36. package/dist/fixtures/fixture-schema.d.ts +323 -0
  37. package/dist/fixtures/fixture-schema.js +199 -0
  38. package/dist/fixtures/index.d.ts +16 -0
  39. package/dist/fixtures/index.js +40 -0
  40. package/dist/fixtures/load.d.ts +73 -0
  41. package/dist/fixtures/load.js +137 -0
  42. package/dist/fixtures/questions.d.ts +15 -0
  43. package/dist/fixtures/questions.js +26 -0
  44. package/dist/index.d.ts +20 -0
  45. package/dist/index.js +36 -0
  46. package/dist/kg/gold-runner.d.ts +13 -0
  47. package/dist/kg/gold-runner.js +57 -0
  48. package/dist/kg/index.d.ts +17 -0
  49. package/dist/kg/index.js +65 -0
  50. package/dist/kg/internals.d.ts +7 -0
  51. package/dist/kg/internals.js +17 -0
  52. package/dist/kg/prediction-schema.d.ts +245 -0
  53. package/dist/kg/prediction-schema.js +102 -0
  54. package/dist/kg/predictions.d.ts +11 -0
  55. package/dist/kg/predictions.js +49 -0
  56. package/dist/kg/report.d.ts +84 -0
  57. package/dist/kg/report.js +125 -0
  58. package/dist/kg/run-kg-eval.d.ts +77 -0
  59. package/dist/kg/run-kg-eval.js +137 -0
  60. package/dist/kg/runner.d.ts +72 -0
  61. package/dist/kg/runner.js +51 -0
  62. package/dist/kg/runners/extract-resolve-runner.d.ts +40 -0
  63. package/dist/kg/runners/extract-resolve-runner.js +199 -0
  64. package/dist/kg/runners/extract-runner.d.ts +65 -0
  65. package/dist/kg/runners/extract-runner.js +243 -0
  66. package/dist/kg/scorer.d.ts +226 -0
  67. package/dist/kg/scorer.js +463 -0
  68. package/dist/kg/targets.d.ts +17 -0
  69. package/dist/kg/targets.js +16 -0
  70. package/dist/kg/text.d.ts +45 -0
  71. package/dist/kg/text.js +100 -0
  72. package/dist/live/adapters.d.ts +16 -0
  73. package/dist/live/adapters.js +58 -0
  74. package/dist/live/env.d.ts +39 -0
  75. package/dist/live/env.js +56 -0
  76. package/dist/live/index.d.ts +6 -0
  77. package/dist/live/index.js +16 -0
  78. package/dist/live/live-ai.d.ts +104 -0
  79. package/dist/live/live-ai.js +157 -0
  80. package/dist/parity/constants.d.ts +79 -0
  81. package/dist/parity/constants.js +104 -0
  82. package/dist/parity/index.d.ts +20 -0
  83. package/dist/parity/index.js +38 -0
  84. package/dist/parity/internals.d.ts +8 -0
  85. package/dist/parity/internals.js +16 -0
  86. package/dist/parity/scenario.d.ts +45 -0
  87. package/dist/parity/scenario.js +245 -0
  88. package/dist/parity/script.d.ts +44 -0
  89. package/dist/parity/script.js +136 -0
  90. package/dist/parity/snapshot.d.ts +43 -0
  91. package/dist/parity/snapshot.js +71 -0
  92. package/dist/real-data/index.d.ts +2 -0
  93. package/dist/real-data/index.js +12 -0
  94. package/dist/real-data/real-data.d.ts +76 -0
  95. package/dist/real-data/real-data.js +156 -0
  96. package/fixtures/kg-golden/README.md +136 -0
  97. package/fixtures/kg-golden/ask-questions.json +458 -0
  98. package/fixtures/kg-golden/meetings/m01-northwind-pilot-kickoff.json +792 -0
  99. package/fixtures/kg-golden/meetings/m02-halden-migration-planning.json +814 -0
  100. package/fixtures/kg-golden/meetings/m03-larkspur-weekly-sync.json +601 -0
  101. package/fixtures/kg-golden/meetings/m04-corvid-intake-discovery.json +690 -0
  102. package/fixtures/kg-golden/meetings/m05-hosting-vendor-selection.json +631 -0
  103. package/fixtures/kg-golden/meetings/m06-northwind-floor-data-review.json +649 -0
  104. package/fixtures/kg-golden/meetings/m07-gullwing-intro-notes.json +428 -0
  105. package/fixtures/kg-golden/meetings/m08-halden-migration-checkpoint.json +672 -0
  106. package/fixtures/kg-golden/meetings/m09-northwind-platform-org-update.json +711 -0
  107. package/fixtures/kg-golden/meetings/m10-corvid-prototype-review.json +623 -0
  108. package/fixtures/kg-golden/meetings/m11-solvane-grid-dashboard-scoping.json +689 -0
  109. package/fixtures/kg-golden/meetings/m12-northwind-pilot-replan.json +681 -0
  110. package/fixtures/kg-golden/meetings/m13-halden-cutover-go-no-go.json +721 -0
  111. package/fixtures/kg-golden/meetings/m14-gullwing-discovery-readout.json +719 -0
  112. package/fixtures/kg-golden/meetings/m15-halden-handover-ravi-leaving.json +716 -0
  113. package/fixtures/kg-golden/meetings/m16-varden-claims-portal-intro.json +704 -0
  114. package/fixtures/kg-golden/meetings/m17-corvid-usability-debrief.json +572 -0
  115. package/fixtures/kg-golden/meetings/m18-hosting-decision-revisited.json +655 -0
  116. package/fixtures/kg-golden/meetings/m19-solvane-integration-kickoff.json +726 -0
  117. package/fixtures/kg-golden/meetings/m20-northwind-go-live-retro.json +673 -0
  118. package/fixtures/kg-golden/meetings/m21-quarterly-account-review.json +449 -0
  119. package/fixtures/kg-golden/meetings/m22-halden-intro-call-2020.json +558 -0
  120. package/fixtures/kg-golden/meetings/m23-gullwing-model-review.json +702 -0
  121. package/fixtures/kg-golden/meetings/m24-varden-discovery-midpoint.json +643 -0
  122. package/fixtures/kg-golden/meetings/m25-corvid-rollout-planning.json +642 -0
  123. package/fixtures/kg-golden/meetings/m26-larkspur-engineering-prep.json +695 -0
  124. package/fixtures/kg-golden/meetings/m27-solvane-phase-one-demo.json +649 -0
  125. package/fixtures/kg-golden/meetings/m28-northwind-building-5-scoping.json +715 -0
  126. package/fixtures/kg-golden/meetings/m29-halden-southern-cutover-review.json +752 -0
  127. package/fixtures/kg-golden/meetings/m30-varden-portal-build-kickoff.json +697 -0
  128. package/fixtures/kg-golden/meetings/m31-gullwing-rollout-renewal.json +681 -0
  129. package/fixtures/kg-golden/meetings/m32-brambleway-weekly-sync.json +472 -0
  130. package/fixtures/kg-golden/meetings/m33-nina-oliver-one-on-one.json +342 -0
  131. package/fixtures/kg-golden/meetings/m34-coffee-with-dana.json +249 -0
  132. package/fixtures/kg-golden/meetings/m35-brambleway-june-sync.json +553 -0
  133. package/fixtures/kg-golden/meetings/m36-copenhagen-conference-planning.json +296 -0
  134. package/host/generated/client.d.ts +1 -0
  135. package/host/generated/client.js +5 -0
  136. package/host/generated/default.d.ts +1 -0
  137. package/host/generated/default.js +5 -0
  138. package/host/generated/edge.d.ts +1 -0
  139. package/host/generated/edge.js +1658 -0
  140. package/host/generated/index-browser.js +1684 -0
  141. package/host/generated/index.d.ts +192335 -0
  142. package/host/generated/index.js +1658 -0
  143. package/host/generated/package.json +139 -0
  144. package/host/generated/query_compiler_fast_bg.js +2 -0
  145. package/host/generated/query_compiler_fast_bg.wasm +0 -0
  146. package/host/generated/query_compiler_fast_bg.wasm-base64.js +2 -0
  147. package/host/generated/runtime/client.d.ts +3433 -0
  148. package/host/generated/runtime/client.js +110 -0
  149. package/host/generated/runtime/index-browser.d.ts +90 -0
  150. package/host/generated/runtime/index-browser.js +6 -0
  151. package/host/generated/runtime/wasm-compiler-edge.js +100 -0
  152. package/host/generated/schema.prisma +6312 -0
  153. package/host/generated/wasm-edge-light-loader.mjs +5 -0
  154. package/host/generated/wasm-worker-loader.mjs +5 -0
  155. package/host/prisma/fragments/kvox.ask.prisma +126 -0
  156. package/host/prisma/fragments/kvox.graph.prisma +1073 -0
  157. package/host/prisma/fragments/kvox.notes.prisma +787 -0
  158. package/host/prisma/fragments/kvox.search.prisma +211 -0
  159. package/host/prisma/fragments/kvox.transcripts.prisma +790 -0
  160. package/host/prisma/kvox.lock +101 -0
  161. package/host/prisma/migrations/20240101000000_initial/migration.sql +297 -0
  162. package/host/prisma/migrations/20240101000001_add_personal_access_tokens/migration.sql +31 -0
  163. package/host/prisma/migrations/20240101000002_add_credentials/migration.sql +20 -0
  164. package/host/prisma/migrations/20240101000003_add_notification_deliveries/migration.sql +27 -0
  165. package/host/prisma/migrations/20240101000004_drop_stale_uuid_defaults/migration.sql +35 -0
  166. package/host/prisma/migrations/20240101000005_add_notifications/migration.sql +22 -0
  167. package/host/prisma/migrations/20240101000006_add_push_subscriptions/migration.sql +25 -0
  168. package/host/prisma/migrations/20240101000007_add_jobs/migration.sql +110 -0
  169. package/host/prisma/migrations/20240101000008_add_worker_nodes/migration.sql +90 -0
  170. package/host/prisma/migrations/20240101000009_add_database_backup_runs/migration.sql +104 -0
  171. package/host/prisma/migrations/20240101000010_add_notification_broadcasts/migration.sql +57 -0
  172. package/host/prisma/migrations/20240101000011_add_backup_run_job_link/migration.sql +87 -0
  173. package/host/prisma/migrations/20240101000012_add_job_node_secrets/migration.sql +61 -0
  174. package/host/prisma/migrations/20240101000013_add_backup_run_pg_dump_version/migration.sql +26 -0
  175. package/host/prisma/migrations/20240101000014_add_job_claim_token/migration.sql +92 -0
  176. package/host/prisma/migrations/20240101000015_add_ai_platform/migration.sql +108 -0
  177. package/host/prisma/migrations/20240101000016_revoke_viewer_ai_use/migration.sql +32 -0
  178. package/host/prisma/migrations/20240101000017_add_user_credentials/migration.sql +29 -0
  179. package/host/prisma/migrations/20240101000018_add_device_session_credential_link/migration.sql +52 -0
  180. package/host/prisma/migrations/20240101000019_add_worker_node_vitals/migration.sql +3 -0
  181. package/host/prisma/migrations/20240101000020_add_job_trace_context/migration.sql +6 -0
  182. package/host/prisma/migrations/20240101000021_add_retention_created_at_indexes/migration.sql +13 -0
  183. package/host/prisma/migrations/20240101000022_add_organizations/migration.sql +142 -0
  184. package/host/prisma/migrations/20240101000023_split_system_org_roles/migration.sql +131 -0
  185. package/host/prisma/migrations/20240101000024_org_scoped_rls/migration.sql +215 -0
  186. package/host/prisma/migrations/20240101000025_add_groups/migration.sql +165 -0
  187. package/host/prisma/migrations/20240101000026_add_grants/migration.sql +117 -0
  188. package/host/prisma/migrations/20240101000027_add_org_settings/migration.sql +49 -0
  189. package/host/prisma/migrations/20240101000028_add_org_credentials/migration.sql +54 -0
  190. package/host/prisma/migrations/20240101000029_add_jobs_org_id/migration.sql +18 -0
  191. package/host/prisma/migrations/20240101000030_add_jobs_org_id_status_index/migration.sql +6 -0
  192. package/host/prisma/migrations/20240101000031_add_broadcast_target_org/migration.sql +21 -0
  193. package/host/prisma/migrations/20240101000032_add_android_app/migration.sql +60 -0
  194. package/host/prisma/migrations/20240101000033_open_job_reason/migration.sql +16 -0
  195. package/host/prisma/migrations/20240101000034_ai_usage_feature/migration.sql +37 -0
  196. package/host/prisma/migrations/20240101000035_add_app_metadata/migration.sql +49 -0
  197. package/host/prisma/migrations/20240101000036_open_sharing_vocabularies/migration.sql +97 -0
  198. package/host/prisma/migrations/20260914130000_kvox_add_transcripts/migration.sql +322 -0
  199. package/host/prisma/migrations/20260914140000_kvox_add_notes/migration.sql +311 -0
  200. package/host/prisma/migrations/20260915120000_kvox_add_search_vectors/migration.sql +150 -0
  201. package/host/prisma/migrations/20260915130000_kvox_add_search_embeddings/migration.sql +362 -0
  202. package/host/prisma/migrations/20260915210000_kvox_add_note_title_source/migration.sql +30 -0
  203. package/host/prisma/migrations/20260923120000_kvox_add_note_generation_context_snapshot/migration.sql +24 -0
  204. package/host/prisma/migrations/20260923130000_kvox_add_user_hidden_note_templates/migration.sql +35 -0
  205. package/host/prisma/migrations/20260923140000_kvox_add_transcript_speaker_identities/migration.sql +6 -0
  206. package/host/prisma/migrations/20260923150000_kvox_transcript_name_checks/migration.sql +95 -0
  207. package/host/prisma/migrations/20260923160000_kvox_add_note_body_format/migration.sql +27 -0
  208. package/host/prisma/migrations/20260923170000_kvox_add_note_version_body_format/migration.sql +23 -0
  209. package/host/prisma/migrations/20260926012548_kvox_add_knowledge_graph/migration.sql +680 -0
  210. package/host/prisma/migrations/20260926030000_kvox_fix_kg_relations_valid_precision_chk/migration.sql +29 -0
  211. package/host/prisma/migrations/20260926030100_kvox_add_transcript_recorded_at/migration.sql +9 -0
  212. package/host/prisma/migrations/20260926030200_kvox_kg_evidence_invariant/migration.sql +60 -0
  213. package/host/prisma/migrations/20260926040000_kvox_add_kg_graph_layouts/migration.sql +30 -0
  214. package/host/prisma/migrations/20260926050000_kvox_add_ask_conversations/migration.sql +99 -0
  215. package/host/prisma/migrations/20260926231512_kvox_add_kg_exports/migration.sql +52 -0
  216. package/host/prisma/migrations/20261016120000_kvox_transcripts_org_id/migration.sql +49 -0
  217. package/host/prisma/platform.lock +319 -0
  218. package/host/prisma/schema/app.kvox.ask.prisma +110 -0
  219. package/host/prisma/schema/app.kvox.graph.prisma +1030 -0
  220. package/host/prisma/schema/app.kvox.notes.prisma +746 -0
  221. package/host/prisma/schema/app.kvox.search.prisma +208 -0
  222. package/host/prisma/schema/app.kvox.transcripts.prisma +726 -0
  223. package/host/prisma/schema/platform.ai.prisma +419 -0
  224. package/host/prisma/schema/platform.android-app.prisma +46 -0
  225. package/host/prisma/schema/platform.base.prisma +15 -0
  226. package/host/prisma/schema/platform.credentials.prisma +156 -0
  227. package/host/prisma/schema/platform.db-backup.prisma +359 -0
  228. package/host/prisma/schema/platform.identity.prisma +638 -0
  229. package/host/prisma/schema/platform.jobs.prisma +824 -0
  230. package/host/prisma/schema/platform.notifications.prisma +641 -0
  231. package/host/prisma/schema/platform.settings.prisma +53 -0
  232. package/host/prisma/schema/platform.sharing.prisma +208 -0
  233. package/host/prisma/schema/platform.storage.prisma +118 -0
  234. package/package.json +112 -1
  235. package/parity/requests.ask.json +2681 -0
  236. package/parity/requests.m01.json +1554 -0
  237. package/parity/requests.m02.json +1554 -0
  238. package/parity/requests.m03.json +1554 -0
  239. package/parity/requests.m04.json +1554 -0
  240. package/parity/requests.m05.json +1554 -0
  241. package/parity/requests.m06.json +1554 -0
  242. package/parity/requests.m07.json +1554 -0
  243. package/parity/requests.m08.json +1554 -0
  244. package/parity/requests.m09.json +1554 -0
  245. package/parity/requests.m10.json +1554 -0
@@ -0,0 +1,719 @@
1
+ {
2
+ "id": "m14",
3
+ "title": "Gullwing chargeback discovery readout",
4
+ "tags": [
5
+ "client"
6
+ ],
7
+ "recordedAt": "2026-04-09T16:00:00Z",
8
+ "contextText": "Readout of the four-week discovery phase.",
9
+ "hasTranscript": true,
10
+ "speakers": [
11
+ {
12
+ "id": "m14-spk-a",
13
+ "label": "A",
14
+ "displayName": "Alex Rivera"
15
+ },
16
+ {
17
+ "id": "m14-spk-b",
18
+ "label": "B",
19
+ "displayName": "Felix Amundsen"
20
+ },
21
+ {
22
+ "id": "m14-spk-c",
23
+ "label": "C",
24
+ "displayName": "Wen Zhao"
25
+ },
26
+ {
27
+ "id": "m14-spk-d",
28
+ "label": "D",
29
+ "displayName": "Kwame Mensah"
30
+ },
31
+ {
32
+ "id": "m14-spk-e",
33
+ "label": "E",
34
+ "displayName": "Priya Raman"
35
+ }
36
+ ],
37
+ "segments": [
38
+ {
39
+ "id": "m14-s001",
40
+ "speakerId": "m14-spk-a",
41
+ "startMs": 0,
42
+ "endMs": 4780,
43
+ "rev": 1,
44
+ "text": "Thanks everyone. This is the readout from the four-week chargeback discovery."
45
+ },
46
+ {
47
+ "id": "m14-s002",
48
+ "speakerId": "m14-spk-d",
49
+ "startMs": 5030,
50
+ "endMs": 11330,
51
+ "rev": 1,
52
+ "text": "I'll start with the headline. Manual review takes about 18 minutes per dispute on average."
53
+ },
54
+ {
55
+ "id": "m14-s003",
56
+ "speakerId": "m14-spk-b",
57
+ "startMs": 11580,
58
+ "endMs": 14080,
59
+ "rev": 1,
60
+ "text": "Eighteen? I'd have guessed ten."
61
+ },
62
+ {
63
+ "id": "m14-s004",
64
+ "speakerId": "m14-spk-c",
65
+ "startMs": 14330,
66
+ "endMs": 17970,
67
+ "rev": 1,
68
+ "text": "It's the evidence reading. Merchants send forty-page PDFs."
69
+ },
70
+ {
71
+ "id": "m14-s005",
72
+ "speakerId": "m14-spk-d",
73
+ "startMs": 18220,
74
+ "endMs": 26420,
75
+ "rev": 1,
76
+ "text": "And 60 percent of the volume sits in just three reason codes: goods not received, duplicate processing, and cancelled recurring."
77
+ },
78
+ {
79
+ "id": "m14-s006",
80
+ "speakerId": "m14-spk-b",
81
+ "startMs": 26670,
82
+ "endMs": 31830,
83
+ "rev": 1,
84
+ "text": "So if we automate those three, we cover most of the pain."
85
+ },
86
+ {
87
+ "id": "m14-s007",
88
+ "speakerId": "m14-spk-e",
89
+ "startMs": 32080,
90
+ "endMs": 38380,
91
+ "rev": 1,
92
+ "text": "That's our recommendation. Start with the top three reason codes and prove it before widening."
93
+ },
94
+ {
95
+ "id": "m14-s008",
96
+ "speakerId": "m14-spk-b",
97
+ "startMs": 38630,
98
+ "endMs": 40750,
99
+ "rev": 1,
100
+ "text": "Wen, do you agree?"
101
+ },
102
+ {
103
+ "id": "m14-s009",
104
+ "speakerId": "m14-spk-c",
105
+ "startMs": 41000,
106
+ "endMs": 47680,
107
+ "rev": 1,
108
+ "text": "Yes. Those three are also the most rule-like. The judgement calls are in the long tail."
109
+ },
110
+ {
111
+ "id": "m14-s010",
112
+ "speakerId": "m14-spk-b",
113
+ "startMs": 47930,
114
+ "endMs": 53470,
115
+ "rev": 1,
116
+ "text": "Then that's the decision. We automate the top three dispute reason codes first."
117
+ },
118
+ {
119
+ "id": "m14-s011",
120
+ "speakerId": "m14-spk-a",
121
+ "startMs": 53720,
122
+ "endMs": 57360,
123
+ "rev": 1,
124
+ "text": "Great. For the build we'll need labelled data."
125
+ },
126
+ {
127
+ "id": "m14-s012",
128
+ "speakerId": "m14-spk-d",
129
+ "startMs": 57610,
130
+ "endMs": 63530,
131
+ "rev": 1,
132
+ "text": "I'll build a labelled sample of 2,000 disputes by the end of the month."
133
+ },
134
+ {
135
+ "id": "m14-s013",
136
+ "speakerId": "m14-spk-c",
137
+ "startMs": 63780,
138
+ "endMs": 67420,
139
+ "rev": 1,
140
+ "text": "I can have my team validate the labels."
141
+ },
142
+ {
143
+ "id": "m14-s014",
144
+ "speakerId": "m14-spk-a",
145
+ "startMs": 67670,
146
+ "endMs": 71690,
147
+ "rev": 1,
148
+ "text": "Wen, how does validation fit with your team's workload?"
149
+ },
150
+ {
151
+ "id": "m14-s015",
152
+ "speakerId": "m14-spk-c",
153
+ "startMs": 71940,
154
+ "endMs": 76340,
155
+ "rev": 1,
156
+ "text": "It's tight. I report to Felix and we're already stretched."
157
+ },
158
+ {
159
+ "id": "m14-s016",
160
+ "speakerId": "m14-spk-b",
161
+ "startMs": 76590,
162
+ "endMs": 81370,
163
+ "rev": 1,
164
+ "text": "I'll free up two analysts for two weeks. Wen, pick who."
165
+ },
166
+ {
167
+ "id": "m14-s017",
168
+ "speakerId": "m14-spk-c",
169
+ "startMs": 81620,
170
+ "endMs": 82980,
171
+ "rev": 1,
172
+ "text": "Thank you."
173
+ },
174
+ {
175
+ "id": "m14-s018",
176
+ "speakerId": "m14-spk-a",
177
+ "startMs": 83230,
178
+ "endMs": 86490,
179
+ "rev": 1,
180
+ "text": "Felix, how do you want progress reported?"
181
+ },
182
+ {
183
+ "id": "m14-s019",
184
+ "speakerId": "m14-spk-b",
185
+ "startMs": 86740,
186
+ "endMs": 91140,
187
+ "rev": 1,
188
+ "text": "A spreadsheet with numbers. Not slides. I don't read slides."
189
+ },
190
+ {
191
+ "id": "m14-s020",
192
+ "speakerId": "m14-spk-a",
193
+ "startMs": 91390,
194
+ "endMs": 94270,
195
+ "rev": 1,
196
+ "text": "Understood. Weekly numbers in a spreadsheet."
197
+ },
198
+ {
199
+ "id": "m14-s021",
200
+ "speakerId": "m14-spk-e",
201
+ "startMs": 94520,
202
+ "endMs": 102340,
203
+ "rev": 1,
204
+ "text": "From our side, Kwame leads the model work and JJ will help on the API once we get there."
205
+ },
206
+ {
207
+ "id": "m14-s022",
208
+ "speakerId": "m14-spk-b",
209
+ "startMs": 102590,
210
+ "endMs": 105090,
211
+ "rev": 1,
212
+ "text": "What's the next decision point?"
213
+ },
214
+ {
215
+ "id": "m14-s023",
216
+ "speakerId": "m14-spk-a",
217
+ "startMs": 105340,
218
+ "endMs": 112780,
219
+ "rev": 1,
220
+ "text": "When the labelled sample is done, we'll show a first model's accuracy and you decide on the build."
221
+ },
222
+ {
223
+ "id": "m14-s024",
224
+ "speakerId": "m14-spk-b",
225
+ "startMs": 113030,
226
+ "endMs": 115530,
227
+ "rev": 1,
228
+ "text": "Good. Clear gate, clear numbers."
229
+ },
230
+ {
231
+ "id": "m14-s025",
232
+ "speakerId": "m14-spk-a",
233
+ "startMs": 115780,
234
+ "endMs": 117140,
235
+ "rev": 1,
236
+ "text": "Thanks all."
237
+ }
238
+ ],
239
+ "note": {
240
+ "version": 1,
241
+ "body": "# Gullwing chargeback discovery readout\n\n**Date:** April 9\n**Attendees:** Alex Rivera (Larkspur Labs), Priya Raman (Larkspur Labs), Kwame Mensah (Larkspur Labs), Felix Amundsen (Gullwing Payments), Wen Zhao (Gullwing Payments)\n\n## Summary\n\nReadout of the four-week discovery phase for Gullwing's chargeback automation.\n\n## Findings\n\n- Manual review takes about 18 minutes per dispute on average. Most of that time is spent reading merchant evidence, which often arrives as forty-page PDFs.\n- 60 percent of volume sits in three reason codes: goods not received, duplicate processing, and cancelled recurring.\n- Those three codes are also the most rule-like; the judgement calls are in the long tail.\n\n## Decisions\n\n- **Automate the top three dispute reason codes first**, and prove the approach before widening.\n- The next gate: once the labelled sample is complete, Larkspur presents a first model's accuracy and Felix decides on the build.\n\n## Action items\n\n- **Kwame Mensah** — build a labelled sample of 2,000 disputes by the end of the month.\n- **Wen Zhao** — have her team validate the labels; choose two analysts.\n- **Felix Amundsen** — free up two analysts for two weeks for label validation.\n- **Alex Rivera** — report weekly progress numbers in a spreadsheet.\n\n## Notes\n\n- Wen reports to Felix; the risk team is already stretched.\n- Felix wants numbers in a spreadsheet, not slides.\n- Kwame leads the model work; JJ will help on the API later.\n"
242
+ },
243
+ "knownEntities": [
244
+ {
245
+ "id": "g-org-gullwing-payments",
246
+ "type": "Organization",
247
+ "label": "Gullwing Payments",
248
+ "aliases": [
249
+ "Gullwing"
250
+ ],
251
+ "props": {},
252
+ "attendedFixtureIds": []
253
+ },
254
+ {
255
+ "id": "g-person-alex-rivera",
256
+ "type": "Person",
257
+ "label": "Alex Rivera",
258
+ "aliases": [
259
+ "Alex"
260
+ ],
261
+ "props": {},
262
+ "attendedFixtureIds": [
263
+ "m01",
264
+ "m02",
265
+ "m03",
266
+ "m04",
267
+ "m05",
268
+ "m06",
269
+ "m07",
270
+ "m08",
271
+ "m09",
272
+ "m10",
273
+ "m11",
274
+ "m12",
275
+ "m13",
276
+ "m22"
277
+ ]
278
+ },
279
+ {
280
+ "id": "g-person-felix-amundsen",
281
+ "type": "Person",
282
+ "label": "Felix Amundsen",
283
+ "aliases": [
284
+ "Felix"
285
+ ],
286
+ "props": {},
287
+ "attendedFixtureIds": []
288
+ },
289
+ {
290
+ "id": "g-person-jonah-jimenez",
291
+ "type": "Person",
292
+ "label": "Jonah Jiménez",
293
+ "aliases": [
294
+ "JJ",
295
+ "Jonah Jimenez"
296
+ ],
297
+ "props": {},
298
+ "attendedFixtureIds": [
299
+ "m02",
300
+ "m05",
301
+ "m06",
302
+ "m08",
303
+ "m13"
304
+ ]
305
+ },
306
+ {
307
+ "id": "g-person-kwame-mensah",
308
+ "type": "Person",
309
+ "label": "Kwame Mensah",
310
+ "aliases": [
311
+ "Kwame"
312
+ ],
313
+ "props": {},
314
+ "attendedFixtureIds": [
315
+ "m11"
316
+ ]
317
+ },
318
+ {
319
+ "id": "g-person-priya-raman",
320
+ "type": "Person",
321
+ "label": "Priya Raman",
322
+ "aliases": [
323
+ "Priya"
324
+ ],
325
+ "props": {},
326
+ "attendedFixtureIds": [
327
+ "m01",
328
+ "m03",
329
+ "m05"
330
+ ]
331
+ },
332
+ {
333
+ "id": "g-person-wen-zhao",
334
+ "type": "Person",
335
+ "label": "Wen Zhao",
336
+ "aliases": [
337
+ "Wen"
338
+ ],
339
+ "props": {},
340
+ "attendedFixtureIds": []
341
+ },
342
+ {
343
+ "id": "g-project-chargeback-automation",
344
+ "type": "Project",
345
+ "label": "Chargeback automation",
346
+ "aliases": [],
347
+ "props": {},
348
+ "attendedFixtureIds": []
349
+ }
350
+ ],
351
+ "labels": {
352
+ "entities": [
353
+ {
354
+ "key": "meeting",
355
+ "type": "Meeting",
356
+ "label": "Gullwing chargeback discovery readout",
357
+ "aliases": [],
358
+ "existingId": null,
359
+ "props": {},
360
+ "evidence": [
361
+ {
362
+ "source": "note",
363
+ "quote": "Gullwing chargeback discovery readout"
364
+ }
365
+ ]
366
+ },
367
+ {
368
+ "key": "alex",
369
+ "type": "Person",
370
+ "label": "Alex Rivera",
371
+ "aliases": [],
372
+ "existingId": "g-person-alex-rivera",
373
+ "props": {},
374
+ "evidence": [
375
+ {
376
+ "source": "note",
377
+ "quote": "Alex Rivera (Larkspur Labs)"
378
+ }
379
+ ]
380
+ },
381
+ {
382
+ "key": "priya",
383
+ "type": "Person",
384
+ "label": "Priya Raman",
385
+ "aliases": [],
386
+ "existingId": "g-person-priya-raman",
387
+ "props": {},
388
+ "evidence": [
389
+ {
390
+ "source": "note",
391
+ "quote": "Priya Raman (Larkspur Labs)"
392
+ }
393
+ ]
394
+ },
395
+ {
396
+ "key": "kwame",
397
+ "type": "Person",
398
+ "label": "Kwame Mensah",
399
+ "aliases": [],
400
+ "existingId": "g-person-kwame-mensah",
401
+ "props": {},
402
+ "evidence": [
403
+ {
404
+ "source": "note",
405
+ "quote": "Kwame Mensah (Larkspur Labs)"
406
+ }
407
+ ]
408
+ },
409
+ {
410
+ "key": "felix",
411
+ "type": "Person",
412
+ "label": "Felix Amundsen",
413
+ "aliases": [],
414
+ "existingId": "g-person-felix-amundsen",
415
+ "props": {},
416
+ "evidence": [
417
+ {
418
+ "source": "note",
419
+ "quote": "Felix Amundsen (Gullwing Payments)"
420
+ }
421
+ ]
422
+ },
423
+ {
424
+ "key": "wen",
425
+ "type": "Person",
426
+ "label": "Wen Zhao",
427
+ "aliases": [],
428
+ "existingId": "g-person-wen-zhao",
429
+ "props": {},
430
+ "evidence": [
431
+ {
432
+ "source": "note",
433
+ "quote": "Wen Zhao (Gullwing Payments)"
434
+ }
435
+ ]
436
+ },
437
+ {
438
+ "key": "gullwing",
439
+ "type": "Organization",
440
+ "label": "Gullwing Payments",
441
+ "aliases": [],
442
+ "existingId": "g-org-gullwing-payments",
443
+ "props": {},
444
+ "evidence": [
445
+ {
446
+ "source": "note",
447
+ "quote": "Gullwing's chargeback automation"
448
+ }
449
+ ]
450
+ },
451
+ {
452
+ "key": "chargeback",
453
+ "type": "Project",
454
+ "label": "Chargeback automation",
455
+ "aliases": [],
456
+ "existingId": "g-project-chargeback-automation",
457
+ "props": {},
458
+ "evidence": [
459
+ {
460
+ "source": "note",
461
+ "quote": "Gullwing's chargeback automation"
462
+ }
463
+ ]
464
+ }
465
+ ],
466
+ "relations": [
467
+ {
468
+ "type": "ATTENDED",
469
+ "from": "alex",
470
+ "to": "meeting",
471
+ "validFrom": null,
472
+ "validTo": null,
473
+ "precision": "unknown",
474
+ "props": {},
475
+ "evidence": [
476
+ {
477
+ "source": "note",
478
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), Priya Raman (Larkspur Labs), Kwame Mensah (Larkspur Labs), Felix Amundsen (Gullwing Payments), Wen Zhao (Gullwing Payments)"
479
+ }
480
+ ]
481
+ },
482
+ {
483
+ "type": "ATTENDED",
484
+ "from": "priya",
485
+ "to": "meeting",
486
+ "validFrom": null,
487
+ "validTo": null,
488
+ "precision": "unknown",
489
+ "props": {},
490
+ "evidence": [
491
+ {
492
+ "source": "note",
493
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), Priya Raman (Larkspur Labs), Kwame Mensah (Larkspur Labs), Felix Amundsen (Gullwing Payments), Wen Zhao (Gullwing Payments)"
494
+ }
495
+ ]
496
+ },
497
+ {
498
+ "type": "ATTENDED",
499
+ "from": "kwame",
500
+ "to": "meeting",
501
+ "validFrom": null,
502
+ "validTo": null,
503
+ "precision": "unknown",
504
+ "props": {},
505
+ "evidence": [
506
+ {
507
+ "source": "note",
508
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), Priya Raman (Larkspur Labs), Kwame Mensah (Larkspur Labs), Felix Amundsen (Gullwing Payments), Wen Zhao (Gullwing Payments)"
509
+ }
510
+ ]
511
+ },
512
+ {
513
+ "type": "ATTENDED",
514
+ "from": "felix",
515
+ "to": "meeting",
516
+ "validFrom": null,
517
+ "validTo": null,
518
+ "precision": "unknown",
519
+ "props": {},
520
+ "evidence": [
521
+ {
522
+ "source": "note",
523
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), Priya Raman (Larkspur Labs), Kwame Mensah (Larkspur Labs), Felix Amundsen (Gullwing Payments), Wen Zhao (Gullwing Payments)"
524
+ }
525
+ ]
526
+ },
527
+ {
528
+ "type": "ATTENDED",
529
+ "from": "wen",
530
+ "to": "meeting",
531
+ "validFrom": null,
532
+ "validTo": null,
533
+ "precision": "unknown",
534
+ "props": {},
535
+ "evidence": [
536
+ {
537
+ "source": "note",
538
+ "quote": "**Attendees:** Alex Rivera (Larkspur Labs), Priya Raman (Larkspur Labs), Kwame Mensah (Larkspur Labs), Felix Amundsen (Gullwing Payments), Wen Zhao (Gullwing Payments)"
539
+ }
540
+ ]
541
+ },
542
+ {
543
+ "type": "REPORTS_TO",
544
+ "from": "wen",
545
+ "to": "felix",
546
+ "validFrom": null,
547
+ "validTo": null,
548
+ "precision": "unknown",
549
+ "props": {},
550
+ "evidence": [
551
+ {
552
+ "source": "segment",
553
+ "segmentId": "m14-s015",
554
+ "quote": "I report to Felix"
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "type": "DISCUSSED",
560
+ "from": "meeting",
561
+ "to": "chargeback",
562
+ "validFrom": null,
563
+ "validTo": null,
564
+ "precision": "unknown",
565
+ "props": {},
566
+ "evidence": [
567
+ {
568
+ "source": "segment",
569
+ "segmentId": "m14-s001",
570
+ "quote": "This is the readout from the four-week chargeback discovery."
571
+ }
572
+ ]
573
+ }
574
+ ],
575
+ "items": [
576
+ {
577
+ "kind": "claim",
578
+ "subject": "gullwing",
579
+ "owner": null,
580
+ "counterparty": null,
581
+ "title": "Manual review takes 18 minutes",
582
+ "statement": "Manual review takes about 18 minutes per dispute on average.",
583
+ "status": null,
584
+ "occurredAt": "2026-04-09",
585
+ "dueAt": null,
586
+ "sensitivity": null,
587
+ "supersedesLabel": null,
588
+ "evidence": [
589
+ {
590
+ "source": "segment",
591
+ "segmentId": "m14-s002",
592
+ "quote": "Manual review takes about 18 minutes per dispute on average."
593
+ }
594
+ ]
595
+ },
596
+ {
597
+ "kind": "claim",
598
+ "subject": "gullwing",
599
+ "owner": null,
600
+ "counterparty": null,
601
+ "title": "60 percent of volume in three reason codes",
602
+ "statement": "60 percent of dispute volume sits in three reason codes.",
603
+ "status": null,
604
+ "occurredAt": "2026-04-09",
605
+ "dueAt": null,
606
+ "sensitivity": null,
607
+ "supersedesLabel": null,
608
+ "evidence": [
609
+ {
610
+ "source": "segment",
611
+ "segmentId": "m14-s005",
612
+ "quote": "60 percent of the volume sits in just three reason codes"
613
+ }
614
+ ]
615
+ },
616
+ {
617
+ "kind": "decision",
618
+ "subject": "chargeback",
619
+ "owner": null,
620
+ "counterparty": null,
621
+ "title": "Automate the top three reason codes first",
622
+ "statement": "Gullwing will automate the top three dispute reason codes first.",
623
+ "status": null,
624
+ "occurredAt": "2026-04-09",
625
+ "dueAt": null,
626
+ "sensitivity": null,
627
+ "supersedesLabel": null,
628
+ "evidence": [
629
+ {
630
+ "source": "segment",
631
+ "segmentId": "m14-s010",
632
+ "quote": "We automate the top three dispute reason codes first."
633
+ }
634
+ ]
635
+ },
636
+ {
637
+ "kind": "commitment",
638
+ "subject": "chargeback",
639
+ "owner": "kwame",
640
+ "counterparty": null,
641
+ "title": "Build labelled sample of 2,000 disputes",
642
+ "statement": "Kwame will build a labelled sample of 2,000 disputes by the end of the month.",
643
+ "status": "open",
644
+ "occurredAt": "2026-04-09",
645
+ "dueAt": "2026-04-30",
646
+ "sensitivity": null,
647
+ "supersedesLabel": null,
648
+ "evidence": [
649
+ {
650
+ "source": "segment",
651
+ "segmentId": "m14-s012",
652
+ "quote": "I'll build a labelled sample of 2,000 disputes by the end of the month."
653
+ }
654
+ ]
655
+ },
656
+ {
657
+ "kind": "commitment",
658
+ "subject": "chargeback",
659
+ "owner": "felix",
660
+ "counterparty": "wen",
661
+ "title": "Free up two analysts",
662
+ "statement": "Felix will free up two analysts for two weeks for label validation.",
663
+ "status": "open",
664
+ "occurredAt": "2026-04-09",
665
+ "dueAt": null,
666
+ "sensitivity": null,
667
+ "supersedesLabel": null,
668
+ "evidence": [
669
+ {
670
+ "source": "segment",
671
+ "segmentId": "m14-s016",
672
+ "quote": "I'll free up two analysts for two weeks."
673
+ }
674
+ ]
675
+ },
676
+ {
677
+ "kind": "commitment",
678
+ "subject": "chargeback",
679
+ "owner": "alex",
680
+ "counterparty": "felix",
681
+ "title": "Weekly numbers in a spreadsheet",
682
+ "statement": "Alex will report weekly progress numbers in a spreadsheet.",
683
+ "status": "open",
684
+ "occurredAt": "2026-04-09",
685
+ "dueAt": null,
686
+ "sensitivity": null,
687
+ "supersedesLabel": null,
688
+ "evidence": [
689
+ {
690
+ "source": "segment",
691
+ "segmentId": "m14-s020",
692
+ "quote": "Weekly numbers in a spreadsheet."
693
+ }
694
+ ]
695
+ },
696
+ {
697
+ "kind": "person_fact",
698
+ "subject": "felix",
699
+ "owner": null,
700
+ "counterparty": null,
701
+ "title": "Reads spreadsheets, not slides",
702
+ "statement": "Felix wants numbers in a spreadsheet and doesn't read slides.",
703
+ "status": null,
704
+ "occurredAt": "2026-04-09",
705
+ "dueAt": null,
706
+ "sensitivity": "business",
707
+ "supersedesLabel": null,
708
+ "evidence": [
709
+ {
710
+ "source": "segment",
711
+ "segmentId": "m14-s019",
712
+ "quote": "A spreadsheet with numbers. Not slides. I don't read slides."
713
+ }
714
+ ]
715
+ }
716
+ ],
717
+ "negatives": []
718
+ }
719
+ }