@bongos/core 1.17.2 → 1.18.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 (151) hide show
  1. package/.bongos-core.json +426 -96
  2. package/.devcontainer/healthcheck.sh +0 -0
  3. package/.devcontainer/init-firewall.sh +0 -0
  4. package/.devcontainer/post-create.sh +0 -0
  5. package/GOVERNANCE.md +1 -1
  6. package/README.md +26 -22
  7. package/bin/bongos.js +0 -0
  8. package/clients/bongos-client/README.md +1 -1
  9. package/clients/bongos-client/bongos-client.global.js +2 -0
  10. package/clients/bongos-client/index.cjs +2 -0
  11. package/clients/bongos-client/index.d.ts +4 -2
  12. package/clients/bongos-client/index.mjs +2 -0
  13. package/docker-entrypoint.sh +0 -0
  14. package/docs/adr/0139-platform-history-migration-to-cloudbongos.md +94 -0
  15. package/docs/adr/0140-cloudbongos-standalone-reprovision.md +43 -0
  16. package/docs/adr/README.md +3 -0
  17. package/docs/api/openapi.json +68 -370
  18. package/docs/api-reference.md +7 -18
  19. package/docs/file-map.md +7 -25
  20. package/docs/onboarding/diagrams/05-versioning.mmd +4 -6
  21. package/docs/onboarding/diagrams/assertions.json +5 -9
  22. package/modules/hall-ui/public/builders.js +132 -645
  23. package/modules/hall-ui/public/goal-inbox.js +67 -26
  24. package/modules/hall-ui/public/goals-page.js +102 -177
  25. package/modules/hall-ui/public/goals.css +183 -0
  26. package/modules/hall-ui/public/goals.html +35 -253
  27. package/modules/hall-ui/public/goals.js +7 -2
  28. package/modules/hall-ui/public/hall-kit.js +474 -0
  29. package/modules/hall-ui/public/hall-widgets.js +24 -20
  30. package/modules/hall-ui/public/instances-panel.js +24 -3
  31. package/modules/hall-ui/public/new-project-wizard.js +6 -5
  32. package/modules/hall-ui/public/settings.css +355 -0
  33. package/modules/hall-ui/public/settings.html +86 -414
  34. package/modules/hall-ui/public/settings.js +96 -35
  35. package/modules/hall-ui/public/style.css +156 -0
  36. package/modules/hall-ui/public/watch.css +184 -0
  37. package/modules/hall-ui/public/watch.html +111 -285
  38. package/modules/hall-ui/public/watch.js +59 -21
  39. package/modules/hall-ui/public/work.css +194 -0
  40. package/modules/hall-ui/public/work.html +46 -374
  41. package/modules/hall-ui/public/work.js +137 -102
  42. package/modules/lifecycle/criterion-suggest.js +80 -0
  43. package/modules/lifecycle/db.js +42 -5
  44. package/modules/lifecycle/routes/goals.js +26 -0
  45. package/modules/lifecycle/routes/tasks.js +21 -0
  46. package/package-lock.json +2 -2
  47. package/package.json +1 -1
  48. package/public-landing/create.html +83 -7
  49. package/public-landing/index.html +11 -76
  50. package/scripts/cron/style_guide_audit.sh +0 -0
  51. package/scripts/gds/api.js +0 -0
  52. package/scripts/gds/architect-audit.js +0 -0
  53. package/scripts/gds/audit-authorship.sh +0 -0
  54. package/scripts/gds/audit-replay.sh +0 -0
  55. package/scripts/gds/box.js +0 -0
  56. package/scripts/gds/capture.js +0 -0
  57. package/scripts/gds/conductor-dispatch.js +0 -0
  58. package/scripts/gds/coreB-carve-proof.sh +0 -0
  59. package/scripts/gds/db-backup-nightly.sh +0 -0
  60. package/scripts/gds/db-backup-offsite.sh +0 -0
  61. package/scripts/gds/doctor.js +0 -0
  62. package/scripts/gds/grade-smoke.js +0 -0
  63. package/scripts/gds/hooks/pre-push.js +0 -0
  64. package/scripts/gds/install-git-hooks.js +0 -0
  65. package/scripts/gds/main-audit.js +0 -0
  66. package/scripts/gds/oauth-secret.js +0 -0
  67. package/scripts/gds/onboarding-analyze.js +0 -0
  68. package/scripts/gds/onboarding-ship.js +0 -0
  69. package/scripts/gds/paste-token.js +0 -0
  70. package/scripts/gds/portability-smoke-art.sh +0 -0
  71. package/scripts/gds/portability-smoke-memory.sh +0 -0
  72. package/scripts/gds/provision.js +125 -4
  73. package/scripts/gds/push-main.js +0 -0
  74. package/scripts/gds/render-ideas.js +0 -0
  75. package/scripts/gds/security-baseline-check.sh +0 -0
  76. package/scripts/gds/session.js +0 -0
  77. package/scripts/gds/ship.js +11 -1
  78. package/scripts/gds/smoke-batch-claim.sh +0 -0
  79. package/scripts/gds/smoke-batch-release.sh +0 -0
  80. package/scripts/gds/smoke-box.sh +0 -0
  81. package/scripts/gds/smoke-claim-consistency.sh +0 -0
  82. package/scripts/gds/smoke-dependencies.sh +0 -0
  83. package/scripts/gds/smoke-write.sh +0 -0
  84. package/scripts/hall-preview/README.md +103 -0
  85. package/scripts/hall-preview/fixtures/access-requests.json +20 -0
  86. package/scripts/hall-preview/fixtures/achievements.json +76 -0
  87. package/scripts/hall-preview/fixtures/analytics__builder.json +251 -0
  88. package/scripts/hall-preview/fixtures/audit-log.json +68 -0
  89. package/scripts/hall-preview/fixtures/blockers__detail.json +12 -0
  90. package/scripts/hall-preview/fixtures/box__me.json +5 -0
  91. package/scripts/hall-preview/fixtures/boxes__cost-ledger.json +69 -0
  92. package/scripts/hall-preview/fixtures/builders__active-claims.json +1 -0
  93. package/scripts/hall-preview/fixtures/builders__directory.json +81 -0
  94. package/scripts/hall-preview/fixtures/builders__roster.json +48 -0
  95. package/scripts/hall-preview/fixtures/goals.json +502 -0
  96. package/scripts/hall-preview/fixtures/goals__25.json +96 -0
  97. package/scripts/hall-preview/fixtures/goals__26.json +67 -0
  98. package/scripts/hall-preview/fixtures/goals__3.json +103 -0
  99. package/scripts/hall-preview/fixtures/goals__35.json +49 -0
  100. package/scripts/hall-preview/fixtures/goals__conflicts.json +154 -0
  101. package/scripts/hall-preview/fixtures/goals__detail.json +96 -0
  102. package/scripts/hall-preview/fixtures/goals__inbox.json +5 -0
  103. package/scripts/hall-preview/fixtures/goals__requests.json +3 -0
  104. package/scripts/hall-preview/fixtures/grades__by-builder.json +32 -0
  105. package/scripts/hall-preview/fixtures/inbox.json +330 -0
  106. package/scripts/hall-preview/fixtures/inbox__detail.json +15 -0
  107. package/scripts/hall-preview/fixtures/instance.json +124 -0
  108. package/scripts/hall-preview/fixtures/leaderboard.json +184 -0
  109. package/scripts/hall-preview/fixtures/me.json +476 -0
  110. package/scripts/hall-preview/fixtures/me__art-key__own.json +6 -0
  111. package/scripts/hall-preview/fixtures/me__event-sound-prefs.json +209 -0
  112. package/scripts/hall-preview/fixtures/me__recent-ships.json +304 -0
  113. package/scripts/hall-preview/fixtures/me__render.json +5 -0
  114. package/scripts/hall-preview/fixtures/me__skill-prefs.json +143 -0
  115. package/scripts/hall-preview/fixtures/me__sound-prefs.json +67 -0
  116. package/scripts/hall-preview/fixtures/me__wandering.json +43 -0
  117. package/scripts/hall-preview/fixtures/override-requests.json +15 -0
  118. package/scripts/hall-preview/fixtures/provisioning__fleet.json +1 -0
  119. package/scripts/hall-preview/fixtures/provisioning__fleet__cost-ledger.json +1 -0
  120. package/scripts/hall-preview/fixtures/provisioning__instances.json +1 -0
  121. package/scripts/hall-preview/fixtures/public__analytics__ecosystem.json +516 -0
  122. package/scripts/hall-preview/fixtures/public__bounty-table.json +37 -0
  123. package/scripts/hall-preview/fixtures/public__cost-summary.json +742 -0
  124. package/scripts/hall-preview/fixtures/public__estimation-drift.json +41 -0
  125. package/scripts/hall-preview/fixtures/public__grades.json +50 -0
  126. package/scripts/hall-preview/fixtures/public__progress.json +124 -0
  127. package/scripts/hall-preview/fixtures/public__recent-shipped.json +426 -0
  128. package/scripts/hall-preview/fixtures/public__repo-health.json +160 -0
  129. package/scripts/hall-preview/fixtures/public__repo-info.json +5 -0
  130. package/scripts/hall-preview/fixtures/security__docs.json +10 -0
  131. package/scripts/hall-preview/fixtures/security__reports.json +31 -0
  132. package/scripts/hall-preview/fixtures/sessions__search.json +9 -0
  133. package/scripts/hall-preview/fixtures/tasks.json +2420 -0
  134. package/scripts/hall-preview/fixtures/tasks__claimable.json +2555 -0
  135. package/scripts/hall-preview/fixtures/tasks__detail.json +111 -0
  136. package/scripts/hall-preview/fixtures/tasks__peer-votes__feed.json +330 -0
  137. package/scripts/hall-preview/fixtures/versions.json +89 -0
  138. package/scripts/hall-preview/refresh-fixtures.js +77 -0
  139. package/scripts/hall-preview/server.js +195 -0
  140. package/scripts/migrate.sh +29 -4
  141. package/scripts/migrate_cost_ledger.sh +0 -0
  142. package/scripts/render-diagrams.sh +0 -0
  143. package/scripts/security/dep-audit.js +0 -0
  144. package/scripts/setup-builder.js +0 -0
  145. package/scripts/setup-builder.sh +0 -0
  146. package/scripts/snapshots/maybe-render-on-deploy.sh +0 -0
  147. package/src/bongos/optimizer.js +37 -2
  148. package/src/module-api.js +20 -1
  149. package/tests/criterion_suggest.mjs +106 -0
  150. package/tests/migrate_root_resolution.mjs +97 -0
  151. package/tests/provision.mjs +69 -0
@@ -0,0 +1,67 @@
1
+ {
2
+ "prefs": {},
3
+ "effective": [
4
+ {
5
+ "sound": "chime",
6
+ "label": "Chime",
7
+ "desc": "When Claude finishes a turn",
8
+ "default_enabled": true,
9
+ "override_enabled": null,
10
+ "enabled": true
11
+ },
12
+ {
13
+ "sound": "alert",
14
+ "label": "Alert",
15
+ "desc": "When Claude needs your input",
16
+ "default_enabled": true,
17
+ "override_enabled": null,
18
+ "enabled": true
19
+ },
20
+ {
21
+ "sound": "ship",
22
+ "label": "Ship",
23
+ "desc": "When a task ships",
24
+ "default_enabled": true,
25
+ "override_enabled": null,
26
+ "enabled": true
27
+ },
28
+ {
29
+ "sound": "triumph",
30
+ "label": "Triumph",
31
+ "desc": "When a big task ships",
32
+ "default_enabled": true,
33
+ "override_enabled": null,
34
+ "enabled": true
35
+ },
36
+ {
37
+ "sound": "fanfare",
38
+ "label": "Fanfare",
39
+ "desc": "When you earn a rank promotion",
40
+ "default_enabled": true,
41
+ "override_enabled": null,
42
+ "enabled": true
43
+ }
44
+ ],
45
+ "effective_map": {
46
+ "chime": true,
47
+ "alert": true,
48
+ "ship": true,
49
+ "triumph": true,
50
+ "fanfare": true
51
+ },
52
+ "volume": 100,
53
+ "defaults": {
54
+ "chime": true,
55
+ "alert": true,
56
+ "ship": true,
57
+ "triumph": true,
58
+ "fanfare": true
59
+ },
60
+ "known_sounds": [
61
+ "chime",
62
+ "alert",
63
+ "ship",
64
+ "triumph",
65
+ "fanfare"
66
+ ]
67
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "rank": "metic",
3
+ "levels": [
4
+ {
5
+ "n": 0,
6
+ "key": "locked",
7
+ "label": "Locked",
8
+ "blurb": "Strictly the claimed task. Off-task notes are filed silently, never raised.",
9
+ "allowed": true
10
+ },
11
+ {
12
+ "n": 1,
13
+ "key": "focused",
14
+ "label": "Focused",
15
+ "blurb": "On task, full in-task initiative; at most one captured follow-up at the end.",
16
+ "allowed": true
17
+ },
18
+ {
19
+ "n": 2,
20
+ "key": "balanced",
21
+ "label": "Balanced",
22
+ "blurb": "May surface a high-value tangent mid-task as \"capture or pursue?\" \u2014 your call.",
23
+ "allowed": true
24
+ },
25
+ {
26
+ "n": 3,
27
+ "key": "exploratory",
28
+ "label": "Exploratory",
29
+ "blurb": "A thinking partner \u2014 actively surfaces adjacent work and investigations.",
30
+ "allowed": true
31
+ }
32
+ ],
33
+ "default_level": 2,
34
+ "default_key": "balanced",
35
+ "max_level": 3,
36
+ "max_key": "exploratory",
37
+ "override_level": null,
38
+ "effective_level": 2,
39
+ "effective_key": "balanced",
40
+ "effective_label": "Balanced",
41
+ "contract": "Wandering: Balanced. Stay anchored to your claim, but if you hit a genuinely high-value or blocking tangent you may surface it briefly and ask \"capture or pursue?\" \u2014 leave the call to the user. Note anomalies as observations; don't rabbit-hole.",
42
+ "inject": false
43
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "requests": [
3
+ {
4
+ "id": "12",
5
+ "task_id": "777",
6
+ "task_title": "Synthetic: grader bypass ask for preview",
7
+ "requester_display_name": "Preview Builder",
8
+ "requester_login": "preview-builder",
9
+ "rationale": "Grader outage window \u2014 synthetic row.",
10
+ "credits_reward": 40,
11
+ "created_at": "2026-07-10T12:00:00.000Z",
12
+ "status": "open"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1 @@
1
+ { "instances": [] }
@@ -0,0 +1 @@
1
+ { "total_monthly_usd": 0 }
@@ -0,0 +1 @@
1
+ { "instances": [] }
@@ -0,0 +1,516 @@
1
+ {
2
+ "window_days": 90,
3
+ "ship_rate": [
4
+ {
5
+ "day": "2026-05-09",
6
+ "n": 10
7
+ },
8
+ {
9
+ "day": "2026-05-10",
10
+ "n": 43
11
+ },
12
+ {
13
+ "day": "2026-05-11",
14
+ "n": 40
15
+ },
16
+ {
17
+ "day": "2026-05-12",
18
+ "n": 37
19
+ },
20
+ {
21
+ "day": "2026-05-13",
22
+ "n": 4
23
+ },
24
+ {
25
+ "day": "2026-05-14",
26
+ "n": 1
27
+ },
28
+ {
29
+ "day": "2026-05-18",
30
+ "n": 1
31
+ },
32
+ {
33
+ "day": "2026-05-26",
34
+ "n": 17
35
+ },
36
+ {
37
+ "day": "2026-05-27",
38
+ "n": 21
39
+ },
40
+ {
41
+ "day": "2026-05-28",
42
+ "n": 34
43
+ },
44
+ {
45
+ "day": "2026-05-29",
46
+ "n": 38
47
+ },
48
+ {
49
+ "day": "2026-05-30",
50
+ "n": 45
51
+ },
52
+ {
53
+ "day": "2026-06-01",
54
+ "n": 11
55
+ },
56
+ {
57
+ "day": "2026-06-02",
58
+ "n": 17
59
+ },
60
+ {
61
+ "day": "2026-06-03",
62
+ "n": 18
63
+ },
64
+ {
65
+ "day": "2026-06-04",
66
+ "n": 26
67
+ },
68
+ {
69
+ "day": "2026-06-05",
70
+ "n": 26
71
+ },
72
+ {
73
+ "day": "2026-06-06",
74
+ "n": 73
75
+ },
76
+ {
77
+ "day": "2026-06-07",
78
+ "n": 40
79
+ },
80
+ {
81
+ "day": "2026-06-08",
82
+ "n": 2
83
+ },
84
+ {
85
+ "day": "2026-06-09",
86
+ "n": 10
87
+ },
88
+ {
89
+ "day": "2026-06-10",
90
+ "n": 9
91
+ },
92
+ {
93
+ "day": "2026-06-11",
94
+ "n": 12
95
+ },
96
+ {
97
+ "day": "2026-06-12",
98
+ "n": 16
99
+ },
100
+ {
101
+ "day": "2026-06-13",
102
+ "n": 59
103
+ },
104
+ {
105
+ "day": "2026-06-14",
106
+ "n": 45
107
+ },
108
+ {
109
+ "day": "2026-06-15",
110
+ "n": 23
111
+ },
112
+ {
113
+ "day": "2026-06-16",
114
+ "n": 37
115
+ },
116
+ {
117
+ "day": "2026-06-17",
118
+ "n": 19
119
+ },
120
+ {
121
+ "day": "2026-06-18",
122
+ "n": 29
123
+ },
124
+ {
125
+ "day": "2026-06-19",
126
+ "n": 44
127
+ },
128
+ {
129
+ "day": "2026-06-20",
130
+ "n": 59
131
+ },
132
+ {
133
+ "day": "2026-06-21",
134
+ "n": 53
135
+ },
136
+ {
137
+ "day": "2026-06-22",
138
+ "n": 13
139
+ },
140
+ {
141
+ "day": "2026-06-23",
142
+ "n": 24
143
+ },
144
+ {
145
+ "day": "2026-06-24",
146
+ "n": 17
147
+ },
148
+ {
149
+ "day": "2026-06-25",
150
+ "n": 16
151
+ },
152
+ {
153
+ "day": "2026-06-26",
154
+ "n": 37
155
+ },
156
+ {
157
+ "day": "2026-06-27",
158
+ "n": 35
159
+ },
160
+ {
161
+ "day": "2026-06-28",
162
+ "n": 19
163
+ },
164
+ {
165
+ "day": "2026-06-29",
166
+ "n": 13
167
+ },
168
+ {
169
+ "day": "2026-06-30",
170
+ "n": 18
171
+ },
172
+ {
173
+ "day": "2026-07-01",
174
+ "n": 7
175
+ },
176
+ {
177
+ "day": "2026-07-02",
178
+ "n": 43
179
+ },
180
+ {
181
+ "day": "2026-07-03",
182
+ "n": 120
183
+ },
184
+ {
185
+ "day": "2026-07-04",
186
+ "n": 57
187
+ },
188
+ {
189
+ "day": "2026-07-05",
190
+ "n": 42
191
+ },
192
+ {
193
+ "day": "2026-07-06",
194
+ "n": 2
195
+ },
196
+ {
197
+ "day": "2026-07-07",
198
+ "n": 13
199
+ },
200
+ {
201
+ "day": "2026-07-08",
202
+ "n": 21
203
+ },
204
+ {
205
+ "day": "2026-07-09",
206
+ "n": 15
207
+ },
208
+ {
209
+ "day": "2026-07-10",
210
+ "n": 22
211
+ }
212
+ ],
213
+ "duration_trend": [
214
+ {
215
+ "day": "2026-05-09",
216
+ "avg_actual": 8,
217
+ "avg_est": 125
218
+ },
219
+ {
220
+ "day": "2026-05-10",
221
+ "avg_actual": 25,
222
+ "avg_est": 119
223
+ },
224
+ {
225
+ "day": "2026-05-11",
226
+ "avg_actual": 7,
227
+ "avg_est": 133
228
+ },
229
+ {
230
+ "day": "2026-05-12",
231
+ "avg_actual": 35,
232
+ "avg_est": 62
233
+ },
234
+ {
235
+ "day": "2026-05-13",
236
+ "avg_actual": 436,
237
+ "avg_est": 243
238
+ },
239
+ {
240
+ "day": "2026-05-14",
241
+ "avg_actual": 1125,
242
+ "avg_est": 240
243
+ },
244
+ {
245
+ "day": "2026-05-18",
246
+ "avg_actual": 2,
247
+ "avg_est": 10
248
+ },
249
+ {
250
+ "day": "2026-05-26",
251
+ "avg_actual": 57,
252
+ "avg_est": 140
253
+ },
254
+ {
255
+ "day": "2026-05-27",
256
+ "avg_actual": 13,
257
+ "avg_est": 160
258
+ },
259
+ {
260
+ "day": "2026-05-28",
261
+ "avg_actual": 7,
262
+ "avg_est": 161
263
+ },
264
+ {
265
+ "day": "2026-05-29",
266
+ "avg_actual": 8,
267
+ "avg_est": 121
268
+ },
269
+ {
270
+ "day": "2026-05-30",
271
+ "avg_actual": 10,
272
+ "avg_est": 127
273
+ },
274
+ {
275
+ "day": "2026-06-01",
276
+ "avg_actual": 4,
277
+ "avg_est": 39
278
+ },
279
+ {
280
+ "day": "2026-06-02",
281
+ "avg_actual": 6,
282
+ "avg_est": 114
283
+ },
284
+ {
285
+ "day": "2026-06-03",
286
+ "avg_actual": 56,
287
+ "avg_est": 66
288
+ },
289
+ {
290
+ "day": "2026-06-04",
291
+ "avg_actual": 34,
292
+ "avg_est": 131
293
+ },
294
+ {
295
+ "day": "2026-06-05",
296
+ "avg_actual": 37,
297
+ "avg_est": 103
298
+ },
299
+ {
300
+ "day": "2026-06-06",
301
+ "avg_actual": 11,
302
+ "avg_est": 79
303
+ },
304
+ {
305
+ "day": "2026-06-07",
306
+ "avg_actual": 10,
307
+ "avg_est": 45
308
+ },
309
+ {
310
+ "day": "2026-06-09",
311
+ "avg_actual": 1,
312
+ "avg_est": 10
313
+ },
314
+ {
315
+ "day": "2026-06-10",
316
+ "avg_actual": 26,
317
+ "avg_est": 156
318
+ },
319
+ {
320
+ "day": "2026-06-11",
321
+ "avg_actual": 13,
322
+ "avg_est": 94
323
+ },
324
+ {
325
+ "day": "2026-06-12",
326
+ "avg_actual": 455,
327
+ "avg_est": 83
328
+ },
329
+ {
330
+ "day": "2026-06-13",
331
+ "avg_actual": 32,
332
+ "avg_est": 120
333
+ },
334
+ {
335
+ "day": "2026-06-14",
336
+ "avg_actual": 167,
337
+ "avg_est": 95
338
+ },
339
+ {
340
+ "day": "2026-06-15",
341
+ "avg_actual": 57,
342
+ "avg_est": 109
343
+ },
344
+ {
345
+ "day": "2026-06-16",
346
+ "avg_actual": 9,
347
+ "avg_est": 175
348
+ },
349
+ {
350
+ "day": "2026-06-17",
351
+ "avg_actual": 117,
352
+ "avg_est": 95
353
+ },
354
+ {
355
+ "day": "2026-06-18",
356
+ "avg_actual": 64,
357
+ "avg_est": 123
358
+ },
359
+ {
360
+ "day": "2026-06-19",
361
+ "avg_actual": 63,
362
+ "avg_est": 120
363
+ },
364
+ {
365
+ "day": "2026-06-20",
366
+ "avg_actual": 30,
367
+ "avg_est": 75
368
+ },
369
+ {
370
+ "day": "2026-06-21",
371
+ "avg_actual": 209,
372
+ "avg_est": 127
373
+ },
374
+ {
375
+ "day": "2026-06-22",
376
+ "avg_actual": 584,
377
+ "avg_est": 58
378
+ },
379
+ {
380
+ "day": "2026-06-23",
381
+ "avg_actual": 281,
382
+ "avg_est": 100
383
+ },
384
+ {
385
+ "day": "2026-06-24",
386
+ "avg_actual": 147,
387
+ "avg_est": 184
388
+ },
389
+ {
390
+ "day": "2026-06-25",
391
+ "avg_actual": 245,
392
+ "avg_est": 253
393
+ },
394
+ {
395
+ "day": "2026-06-26",
396
+ "avg_actual": 107,
397
+ "avg_est": 152
398
+ },
399
+ {
400
+ "day": "2026-06-27",
401
+ "avg_actual": 53,
402
+ "avg_est": 109
403
+ },
404
+ {
405
+ "day": "2026-06-28",
406
+ "avg_actual": 74,
407
+ "avg_est": 147
408
+ },
409
+ {
410
+ "day": "2026-06-29",
411
+ "avg_actual": 222,
412
+ "avg_est": 191
413
+ },
414
+ {
415
+ "day": "2026-06-30",
416
+ "avg_actual": 1192,
417
+ "avg_est": 270
418
+ },
419
+ {
420
+ "day": "2026-07-01",
421
+ "avg_actual": 322,
422
+ "avg_est": 255
423
+ },
424
+ {
425
+ "day": "2026-07-02",
426
+ "avg_actual": 56,
427
+ "avg_est": 168
428
+ },
429
+ {
430
+ "day": "2026-07-03",
431
+ "avg_actual": 23,
432
+ "avg_est": 116
433
+ },
434
+ {
435
+ "day": "2026-07-04",
436
+ "avg_actual": 11,
437
+ "avg_est": 148
438
+ },
439
+ {
440
+ "day": "2026-07-05",
441
+ "avg_actual": 51,
442
+ "avg_est": 122
443
+ },
444
+ {
445
+ "day": "2026-07-07",
446
+ "avg_actual": 8,
447
+ "avg_est": 37
448
+ },
449
+ {
450
+ "day": "2026-07-08",
451
+ "avg_actual": 116,
452
+ "avg_est": 139
453
+ },
454
+ {
455
+ "day": "2026-07-09",
456
+ "avg_actual": 5,
457
+ "avg_est": 75
458
+ },
459
+ {
460
+ "day": "2026-07-10",
461
+ "avg_actual": 7,
462
+ "avg_est": 86
463
+ }
464
+ ],
465
+ "top_kinds": [
466
+ {
467
+ "kind": "feature",
468
+ "n": 574
469
+ },
470
+ {
471
+ "kind": "bug",
472
+ "n": 245
473
+ },
474
+ {
475
+ "kind": "infra",
476
+ "n": 211
477
+ },
478
+ {
479
+ "kind": "cleanup",
480
+ "n": 118
481
+ },
482
+ {
483
+ "kind": "unclassified",
484
+ "n": 91
485
+ },
486
+ {
487
+ "kind": "decision",
488
+ "n": 84
489
+ },
490
+ {
491
+ "kind": "refactor",
492
+ "n": 75
493
+ },
494
+ {
495
+ "kind": "spike",
496
+ "n": 46
497
+ },
498
+ {
499
+ "kind": "learning-capture",
500
+ "n": 6
501
+ },
502
+ {
503
+ "kind": "verify",
504
+ "n": 2
505
+ },
506
+ {
507
+ "kind": "blocker-resolution",
508
+ "n": 1
509
+ }
510
+ ],
511
+ "headline": {
512
+ "total_shipped": 1453,
513
+ "active_builders": 6,
514
+ "avg_duration_min": 58
515
+ }
516
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "table": [
3
+ {
4
+ "severity": "low",
5
+ "drachmae": 10,
6
+ "default_drachmae": 10,
7
+ "overridden": false,
8
+ "env_var": "GDS_BOUNTY_LOW",
9
+ "blurb": "Cosmetic or low-impact — info leak with no exploit path, minor misconfig."
10
+ },
11
+ {
12
+ "severity": "medium",
13
+ "drachmae": 50,
14
+ "default_drachmae": 50,
15
+ "overridden": false,
16
+ "env_var": "GDS_BOUNTY_MEDIUM",
17
+ "blurb": "A real flaw needing specific conditions — limited-scope auth or data issue."
18
+ },
19
+ {
20
+ "severity": "high",
21
+ "drachmae": 200,
22
+ "default_drachmae": 200,
23
+ "overridden": false,
24
+ "env_var": "GDS_BOUNTY_HIGH",
25
+ "blurb": "Serious — privilege escalation, broad data exposure, or auth bypass."
26
+ },
27
+ {
28
+ "severity": "critical",
29
+ "drachmae": 1000,
30
+ "default_drachmae": 1000,
31
+ "overridden": false,
32
+ "env_var": "GDS_BOUNTY_CRITICAL",
33
+ "blurb": "Catastrophic — remote code execution, full account/rank takeover, treasury drain."
34
+ }
35
+ ],
36
+ "currency": "drachmae"
37
+ }