@bongos/core 1.21.175 → 1.21.177

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 (1719) hide show
  1. package/.bongos-core.json +3371 -1636
  2. package/.claude/skills/ask-for-help/SKILL.md +4 -4
  3. package/.claude/skills/backlog-review/SKILL.md +1 -1
  4. package/.claude/skills/blocker-review/SKILL.md +2 -2
  5. package/.claude/skills/blocker-solve/SKILL.md +4 -4
  6. package/.claude/skills/bongos-feedback/SKILL.md +1 -1
  7. package/.claude/skills/bug-triage/SKILL.md +8 -8
  8. package/.claude/skills/builder-backup/SKILL.md +3 -3
  9. package/.claude/skills/builder-claim/SKILL.md +5 -5
  10. package/.claude/skills/builder-cost/SKILL.md +5 -5
  11. package/.claude/skills/builder-end/SKILL.md +6 -6
  12. package/.claude/skills/builder-exit/SKILL.md +2 -2
  13. package/.claude/skills/builder-key/SKILL.md +6 -6
  14. package/.claude/skills/builder-reauth/SKILL.md +4 -4
  15. package/.claude/skills/builder-redteam/SKILL.md +3 -3
  16. package/.claude/skills/builder-release/SKILL.md +3 -3
  17. package/.claude/skills/builder-sequence/SKILL.md +8 -8
  18. package/.claude/skills/builder-setup/SKILL.md +4 -4
  19. package/.claude/skills/builder-ship/SKILL.md +7 -7
  20. package/.claude/skills/builder-stage/SKILL.md +8 -8
  21. package/.claude/skills/builder-start/SKILL.md +4 -4
  22. package/.claude/skills/collab-review/SKILL.md +5 -5
  23. package/.claude/skills/design/SKILL.md +6 -4
  24. package/.claude/skills/design-sync/SKILL.md +3 -3
  25. package/.claude/skills/figma-design-sync/SKILL.md +4 -4
  26. package/.claude/skills/fix-task/SKILL.md +8 -8
  27. package/.claude/skills/goal-close/SKILL.md +9 -9
  28. package/.claude/skills/goal-create/SKILL.md +18 -18
  29. package/.claude/skills/grade-recover/SKILL.md +8 -8
  30. package/.claude/skills/grade-sweep/SKILL.md +15 -15
  31. package/.claude/skills/idea-triage/SKILL.md +15 -15
  32. package/.claude/skills/merge-mode/SKILL.md +14 -14
  33. package/.claude/skills/new-project/SKILL.md +5 -5
  34. package/.claude/skills/owner-review/SKILL.md +1 -1
  35. package/.claude/skills/planning-session/SKILL.md +15 -15
  36. package/.claude/skills/priority-session/SKILL.md +6 -6
  37. package/.claude/skills/read-session-export/SKILL.md +3 -3
  38. package/.claude/skills/recall/SKILL.md +7 -7
  39. package/.claude/skills/scan-before-install/SKILL.md +3 -3
  40. package/.claude/skills/session-handoff/SKILL.md +1 -1
  41. package/.claude/skills/ship-check/SKILL.md +3 -3
  42. package/.claude/skills/status/SKILL.md +3 -3
  43. package/.claude/skills/strand-fix/SKILL.md +6 -6
  44. package/.claude/skills/worktree-clean/SKILL.md +4 -4
  45. package/.gitattributes +12 -32
  46. package/GOVERNMENT.md +1 -1
  47. package/README.md +8 -8
  48. package/bin/bongos.js +23 -23
  49. package/clients/bongos-client/README.md +2 -2
  50. package/clients/bongos-client/bongos-client.global.js +22 -4
  51. package/clients/bongos-client/index.cjs +22 -4
  52. package/clients/bongos-client/index.d.ts +33 -4
  53. package/clients/bongos-client/index.mjs +21 -3
  54. package/config/branding.neutral.json +1 -1
  55. package/config/design-tokens.schema.json +1 -1
  56. package/config/modules.neutral.json +1 -3
  57. package/config/scheduled-routines.json +3 -8
  58. package/docs/adr/0029-status-page-outage-resilience.md +6 -6
  59. package/docs/adr/0091-bounding-the-kernel-and-db-carve.md +1 -1
  60. package/docs/adr/0093-tranche-2-core-carve-sequence.md +1 -1
  61. package/docs/adr/0227-a-task-network-map-is-refused-the-goal-graph-is-the-map.md +1 -1
  62. package/docs/adr/0294-cli-sessions-do-not-expire.md +1 -1
  63. package/docs/adr/0383-sessions-end-after-ten-idle-days.md +35 -0
  64. package/docs/adr/0384-the-raise-page-is-a-hub-module-builders-edit-in-place.md +31 -0
  65. package/docs/adr/README.md +2 -0
  66. package/docs/api/openapi.json +606 -44
  67. package/docs/api-reference.md +25 -12
  68. package/docs/architecture.md +8 -7
  69. package/docs/canonical-permissions.md +4 -4
  70. package/docs/copy-inventory.md +1370 -1411
  71. package/docs/copy-registry.json +2136 -2536
  72. package/docs/design/demonolith-plan.md +6 -6
  73. package/docs/design/modular-architecture/00-research-report.md +1 -1
  74. package/docs/design/project-startup-direction.md +2 -2
  75. package/docs/design/projects-hub-direction-v2.md +1 -1
  76. package/docs/design/reviews/hall-v2/README.md +2 -2
  77. package/docs/design/vanilla-hall-ui-redesign-scope.md +1 -1
  78. package/docs/file-map.md +92 -96
  79. package/docs/handoff-template.md +5 -5
  80. package/docs/module-api-changelog.md +7 -3
  81. package/docs/modules-contract.md +8 -7
  82. package/docs/onboarding/diagrams/01-task-lifecycle.mmd +1 -1
  83. package/docs/onboarding/diagrams/02-rank-ladder.mmd +1 -1
  84. package/docs/onboarding/diagrams/03-drachmae-karma.mmd +1 -1
  85. package/docs/onboarding/diagrams/04-architecture.mmd +1 -1
  86. package/docs/onboarding/diagrams/05-versioning.mmd +1 -1
  87. package/docs/onboarding/diagrams/README.md +5 -9
  88. package/docs/onboarding/diagrams/assertions.json +3 -3
  89. package/docs/onboarding/slash-commands.md +2 -2
  90. package/docs/packs/artist.md +4 -4
  91. package/docs/packs/engineer.md +11 -10
  92. package/docs/packs/ideator.md +7 -7
  93. package/docs/page-inventory.json +20 -1
  94. package/docs/page-readings.json +4387 -4603
  95. package/docs/recipes/README.md +1 -1
  96. package/docs/recipes/audit-replay.md +4 -4
  97. package/docs/recipes/autobongos-windows-host.md +6 -6
  98. package/docs/recipes/bongos-cli-release.md +2 -2
  99. package/docs/recipes/claude-design-loop.md +7 -7
  100. package/docs/recipes/core-release-pipeline.md +19 -19
  101. package/docs/recipes/failed-ship-recovery-proof.md +2 -2
  102. package/docs/recipes/figma-design-loop.md +6 -6
  103. package/docs/recipes/gds-db-backup.md +9 -9
  104. package/docs/recipes/instance-deploy.md +3 -3
  105. package/docs/recipes/instance-first-run.md +1 -1
  106. package/docs/recipes/multi-builder-merge.md +2 -2
  107. package/docs/recipes/ops-gotchas.md +13 -10
  108. package/docs/recipes/packaging-the-core.md +6 -6
  109. package/docs/recipes/parallel-goal-waves.md +4 -4
  110. package/docs/recipes/private-npm-distribution.md +9 -9
  111. package/docs/recipes/redteam-patrol.md +5 -5
  112. package/docs/recipes/render-pilot.md +2 -2
  113. package/docs/recipes/reranking-a-goals-board.md +2 -2
  114. package/docs/recipes/search-index-ingestion.md +5 -5
  115. package/docs/recipes/self-host.md +1 -1
  116. package/docs/recipes/ship-and-regrade.md +4 -4
  117. package/docs/recipes/staging-environment.md +1 -1
  118. package/docs/recipes/standalone-live-docs.md +1 -1
  119. package/docs/recipes/ui-look-before-you-ship.md +2 -2
  120. package/docs/recipes/upgrading-the-core.md +11 -11
  121. package/docs/recipes/windows-builders.md +18 -18
  122. package/docs/research/llm-model-agnostic-and-cheaper-grader.md +6 -6
  123. package/docs/research/task-network-map-readability.md +3 -3
  124. package/migrations/core_278_builder_tester_tag.sql +18 -0
  125. package/migrations/core_279_bongos_shipper_new_scripts_path.sql +13 -0
  126. package/modules/agents/lib/answer-hold.js +1 -1
  127. package/modules/agents/lib/gate.js +1 -1
  128. package/modules/agents/lib/validate.js +1 -1
  129. package/modules/autonomy/db.js +9 -0
  130. package/modules/autonomy/gauge.js +1 -1
  131. package/modules/autonomy/governor-docket.js +2 -2
  132. package/modules/autonomy/module.json +2 -2
  133. package/modules/autonomy/pollers/daily-checks.js +262 -0
  134. package/modules/autonomy/pollers/routine-timers.js +9 -7
  135. package/modules/autonomy/rank-roles.js +64 -0
  136. package/modules/autonomy/routes/autonomy.js +3 -3
  137. package/modules/autonomy/server-schedule.js +37 -0
  138. package/modules/builder-settings/interaction-prefs.js +1 -1
  139. package/modules/builder-settings/render-prefs.js +1 -1
  140. package/modules/builder-settings/routes/settings.js +1 -1
  141. package/modules/builder-settings/skill-prefs.js +2 -2
  142. package/modules/builder-settings/wandering-prefs.js +2 -2
  143. package/modules/copy-desk/module.json +2 -2
  144. package/modules/copy-desk/page-data.js +5 -5
  145. package/modules/copy-desk/page-decisions.js +13 -1
  146. package/modules/copy-desk/proposals.js +4 -4
  147. package/modules/copy-desk/registry.js +2 -2
  148. package/modules/copy-desk/routes/copy-desk-release.js +119 -0
  149. package/modules/copy-desk/routes/copy-desk.js +3 -12
  150. package/modules/copy-desk/skills/tweak/SKILL.md +12 -12
  151. package/modules/copy-desk/tests/copy_flags.mjs +1 -1
  152. package/modules/copy-desk/tests/copy_no_cms.mjs +7 -3
  153. package/modules/copy-desk/tests/copy_proposals.mjs +2 -2
  154. package/modules/copy-desk/tests/copy_queue.mjs +1 -1
  155. package/modules/design-styles/skills/README.md +4 -4
  156. package/modules/design-styles/skills/imagegen-frontend-mobile/SKILL.md +1 -1
  157. package/modules/design-styles/skills/imagegen-frontend-web/SKILL.md +1 -1
  158. package/modules/discord/bug-attachments.js +1 -1
  159. package/modules/discord/ship-broadcast.js +1 -1
  160. package/modules/economy/achievements.js +49 -7
  161. package/modules/economy/cost-classify.js +6 -6
  162. package/modules/economy/cost-report.js +1 -1
  163. package/modules/economy/cost.js +1 -1
  164. package/modules/economy/credits.js +2 -1
  165. package/modules/economy/idea-size.js +2 -2
  166. package/modules/economy/reward.js +2 -0
  167. package/modules/economy/routes/cost.js +1 -1
  168. package/modules/economy/streak.js +43 -4
  169. package/modules/government/asks.js +1 -1
  170. package/modules/government/board.js +19 -2
  171. package/modules/government/catalog.js +3 -0
  172. package/modules/government/migrations/government_033_idea_vote.sql +46 -0
  173. package/modules/government/protected-surfaces.json +48 -47
  174. package/modules/government/recommendations.js +6 -2
  175. package/modules/government/routes/government.js +1 -1
  176. package/modules/grading/generated-provenance.js +13 -5
  177. package/modules/grading/grade-engine.js +1 -1
  178. package/modules/grading/grader-rubric.json +1 -1
  179. package/modules/grading/grader-score.js +1 -1
  180. package/modules/grading/grader-workers/index.js +1 -1
  181. package/modules/grading/grader.js +1 -1
  182. package/modules/grading/routes/grade.js +1 -1
  183. package/modules/hall-ui/public/atlas.html +5 -7
  184. package/modules/hall-ui/public/atlas.js +1 -1
  185. package/modules/hall-ui/public/atlas.states.json +1 -1
  186. package/modules/hall-ui/public/blockers.css +9 -0
  187. package/modules/hall-ui/public/blockers.html +4 -4
  188. package/modules/hall-ui/public/blockers.js +29 -30
  189. package/modules/hall-ui/public/board-room.css +5 -17
  190. package/modules/hall-ui/public/board-room.html +5 -6
  191. package/modules/hall-ui/public/board-room.js +41 -23
  192. package/modules/hall-ui/public/board-room.states.json +1 -1
  193. package/modules/hall-ui/public/brand-apply.js +1 -1
  194. package/modules/hall-ui/public/brand-holes.js +1 -1
  195. package/modules/hall-ui/public/builders.js +40 -86
  196. package/modules/hall-ui/public/city-decide.js +18 -4
  197. package/modules/hall-ui/public/city.html +1 -1
  198. package/modules/hall-ui/public/collab.html +1 -1
  199. package/modules/hall-ui/public/commands.html +6 -9
  200. package/modules/hall-ui/public/copy-desk.html +1 -1
  201. package/modules/hall-ui/public/copy-desk.js +2 -2
  202. package/modules/hall-ui/public/craft-mode.js +4 -0
  203. package/modules/hall-ui/public/deploy.html +6 -2
  204. package/modules/hall-ui/public/deploy.js +21 -13
  205. package/modules/hall-ui/public/diagrams.css +1 -1
  206. package/modules/hall-ui/public/diagrams.html +5 -8
  207. package/modules/hall-ui/public/diagrams.states.json +1 -1
  208. package/modules/hall-ui/public/drachmae.html +3 -7
  209. package/modules/hall-ui/public/fleet.html +3 -2
  210. package/modules/hall-ui/public/fleet.js +0 -4
  211. package/modules/hall-ui/public/gate.html +7 -7
  212. package/modules/hall-ui/public/gate.js +58 -77
  213. package/modules/hall-ui/public/goal-map.html +1 -1
  214. package/modules/hall-ui/public/goals-page.js +5 -5
  215. package/modules/hall-ui/public/goals-render.js +10 -11
  216. package/modules/hall-ui/public/goals.css +10 -0
  217. package/modules/hall-ui/public/goals.html +14 -7
  218. package/modules/hall-ui/public/government.html +3 -5
  219. package/modules/hall-ui/public/government.js +1 -5
  220. package/modules/hall-ui/public/hall-render.js +117 -57
  221. package/modules/hall-ui/public/hall-widgets.js +11 -11
  222. package/modules/hall-ui/public/idea.html +1 -1
  223. package/modules/hall-ui/public/ideas.html +3 -1
  224. package/modules/hall-ui/public/ideas.js +1 -0
  225. package/modules/hall-ui/public/index.html +12 -6
  226. package/modules/hall-ui/public/index.states.json +1 -1
  227. package/modules/hall-ui/public/mine-lens.js +1 -1
  228. package/modules/hall-ui/public/modules.html +7 -10
  229. package/modules/hall-ui/public/modules.js +0 -2
  230. package/modules/hall-ui/public/my-agents.html +1 -1
  231. package/modules/hall-ui/public/palette.js +5 -5
  232. package/modules/hall-ui/public/primer.html +4 -9
  233. package/modules/hall-ui/public/profile-connections.js +10 -2
  234. package/modules/hall-ui/public/profile-roles.js +3 -10
  235. package/modules/hall-ui/public/profile.html +12 -10
  236. package/modules/hall-ui/public/profile.js +13 -17
  237. package/modules/hall-ui/public/project-settings.html +3 -4
  238. package/modules/hall-ui/public/project-settings.js +0 -3
  239. package/modules/hall-ui/public/ranks.html +5 -11
  240. package/modules/hall-ui/public/ranks.js +6 -8
  241. package/modules/hall-ui/public/roadmap.css +0 -2
  242. package/modules/hall-ui/public/roadmap.html +1 -1
  243. package/modules/hall-ui/public/roadmap.js +16 -51
  244. package/modules/hall-ui/public/roster.html +1 -1
  245. package/modules/hall-ui/public/sessions.html +6 -8
  246. package/modules/hall-ui/public/sessions.js +7 -7
  247. package/modules/hall-ui/public/settings.html +1 -1
  248. package/modules/hall-ui/public/shell-trail.js +1 -1
  249. package/modules/hall-ui/public/shell.js +17 -17
  250. package/modules/hall-ui/public/street-deck.css +2 -1
  251. package/modules/hall-ui/public/street-deck.js +10 -2
  252. package/modules/hall-ui/public/street-desk.js +16 -5
  253. package/modules/hall-ui/public/street.html +1 -1
  254. package/modules/hall-ui/public/studio-lib.js +4 -0
  255. package/modules/hall-ui/public/studio.css +2 -0
  256. package/modules/hall-ui/public/studio.html +1 -1
  257. package/modules/hall-ui/public/studio.js +27 -1
  258. package/modules/hall-ui/public/style.css +43 -26
  259. package/modules/hall-ui/public/task-detail.js +10 -7
  260. package/modules/hall-ui/public/task.css +2 -0
  261. package/modules/hall-ui/public/task.html +3 -1
  262. package/modules/hall-ui/public/task.js +23 -7
  263. package/modules/hall-ui/public/thinking.html +1 -1
  264. package/modules/hall-ui/public/tweak-editor.html +1 -1
  265. package/modules/hall-ui/public/vote-control.js +208 -0
  266. package/modules/hall-ui/public/watch.html +3 -5
  267. package/modules/hall-ui/public/watch.js +5 -4
  268. package/modules/hall-ui/public/welcome-boot.css +130 -0
  269. package/modules/hall-ui/public/welcome-boot.js +334 -0
  270. package/modules/hall-ui/public/welcome-day.webp +0 -0
  271. package/modules/hall-ui/public/welcome-night.webp +0 -0
  272. package/modules/hall-ui/public/work-summary.js +1 -1
  273. package/modules/hall-ui/public/work.css +1 -0
  274. package/modules/hall-ui/public/work.html +3 -1
  275. package/modules/hall-ui/public/work.js +2 -1
  276. package/modules/hall-ui/records/accomplishments.md +16 -0
  277. package/modules/hall-ui/records/hall-ask-card.md +9 -0
  278. package/modules/hall-ui/records/karma-vote-control.md +13 -0
  279. package/modules/hall-ui/records/oversight-family.md +1 -1
  280. package/modules/hall-ui/records/profile-connections.md +2 -0
  281. package/modules/hall-ui/records/profile-roles.md +1 -1
  282. package/modules/hall-ui/records/reading-rooms.md +1 -1
  283. package/modules/hall-ui/records/welcome-tower.md +50 -0
  284. package/modules/ideas/migrations/ideas_011_idea_votes.sql +31 -0
  285. package/modules/ideas/projection.js +1 -1
  286. package/modules/ideas/routes/blockers.js +3 -3
  287. package/modules/ideas/routes/inbox.js +29 -1
  288. package/modules/ideas/routes/ratify-goal.js +1 -1
  289. package/modules/ideas/routing.js +1 -1
  290. package/modules/ideas/templates.js +1 -1
  291. package/modules/ideas/trail-descent.js +1 -1
  292. package/modules/ideas/trail-size.js +1 -1
  293. package/modules/ideas/votes.js +93 -0
  294. package/modules/lifecycle/abandon-leftovers.js +1 -1
  295. package/modules/lifecycle/cascade.js +1 -1
  296. package/modules/lifecycle/conflict-resolve.js +13 -21
  297. package/modules/lifecycle/criterion-ref.js +1 -1
  298. package/modules/lifecycle/db-analytics.js +57 -4
  299. package/modules/lifecycle/db-deps-criteria.js +1 -1
  300. package/modules/lifecycle/db-ship.js +2 -2
  301. package/modules/lifecycle/db-tasks.js +2 -2
  302. package/modules/lifecycle/db-versions.js +1 -1
  303. package/modules/lifecycle/db.js +2 -0
  304. package/modules/lifecycle/dead-deps.js +3 -3
  305. package/modules/lifecycle/dependency-advisory.js +3 -3
  306. package/modules/lifecycle/goal-category.js +1 -1
  307. package/modules/lifecycle/goal-forest.js +1 -1
  308. package/modules/lifecycle/goal-task-relevance-advisory.js +1 -1
  309. package/modules/lifecycle/kickoff-checklist.js +1 -1
  310. package/modules/lifecycle/kickoff-seed.js +1 -1
  311. package/modules/lifecycle/lifecycle.js +2 -0
  312. package/modules/lifecycle/merge-reach.js +29 -15
  313. package/modules/lifecycle/missing-dep-classify.js +3 -3
  314. package/modules/lifecycle/module.json +2 -1
  315. package/modules/lifecycle/page-tweak-approve.js +85 -1
  316. package/modules/lifecycle/page-tweak-hold.js +1 -1
  317. package/modules/lifecycle/publish-reconciler.js +1 -2
  318. package/modules/lifecycle/rot.js +1 -1
  319. package/modules/lifecycle/routes/artist-gate.js +1 -1
  320. package/modules/lifecycle/routes/gate-approvals.js +22 -1
  321. package/modules/lifecycle/routes/goals.js +1 -1
  322. package/modules/lifecycle/routes/task-route-helpers.js +1 -1
  323. package/modules/lifecycle/routes/task-votes.js +54 -0
  324. package/modules/lifecycle/routes/task-write-routes.js +1 -1
  325. package/modules/lifecycle/routes/tasks.js +2 -2
  326. package/modules/lifecycle/routes/versions.js +2 -2
  327. package/modules/lifecycle/ship-card.js +4 -4
  328. package/modules/lifecycle/ship-preflight.js +1 -1
  329. package/modules/lifecycle/task-classifier.js +1 -1
  330. package/modules/lifecycle/task-status.js +1 -1
  331. package/modules/lifecycle/task-visual-db.js +1 -1
  332. package/modules/memory/learnings.js +1 -1
  333. package/modules/memory/pollers/search-index.js +2 -2
  334. package/modules/memory/routes/learnings.js +1 -1
  335. package/modules/memory/routes/memory.js +1 -1
  336. package/modules/memory/search.js +2 -2
  337. package/modules/npm-release/release.js +1 -1
  338. package/modules/onboarding/howto-moments.js +1 -1
  339. package/modules/onboarding/newcomer-restock.js +3 -3
  340. package/modules/onboarding/onboarding.js +1 -1
  341. package/modules/pixel-art/skills/otb-tile-generate/SKILL.md +1 -1
  342. package/modules/platform-identity/origin-containment.js +1 -1
  343. package/modules/platform-identity/publish-gate.js +1 -1
  344. package/modules/platform-identity/tests/platform-identity.mjs +1 -1
  345. package/modules/provisioning/capacity.js +1 -1
  346. package/modules/provisioning/core-upgrade.js +15 -9
  347. package/modules/provisioning/credential-preflight.js +3 -3
  348. package/modules/provisioning/disconnect.js +1 -1
  349. package/modules/provisioning/dns-resolves.js +1 -1
  350. package/modules/provisioning/module.json +1 -1
  351. package/modules/provisioning/onboard-plan.js +1 -1
  352. package/modules/provisioning/paid-shape-gate.js +2 -2
  353. package/modules/provisioning/planet-physics.js +11 -2
  354. package/modules/provisioning/pollers/liveness-sweep.js +1 -1
  355. package/modules/provisioning/pollers/runner-drift-notify.js +5 -5
  356. package/modules/provisioning/provisioning.js +2 -2
  357. package/modules/provisioning/render-lookup.js +1 -1
  358. package/modules/provisioning/render-standup.js +3 -3
  359. package/modules/provisioning/repo-private.js +1 -1
  360. package/modules/provisioning/routes/callback-page.js +1 -1
  361. package/modules/provisioning/routes/core-upgrade.js +23 -3
  362. package/modules/provisioning/routes/provisioning.js +2 -2
  363. package/modules/provisioning/routes/render-standup.js +1 -1
  364. package/modules/provisioning/routes/repo-private.js +1 -1
  365. package/modules/provisioning/soft-limits.js +1 -1
  366. package/modules/provisioning/starter-bundles.js +4 -2
  367. package/modules/provisioning/tests/provisioning.mjs +1 -1
  368. package/modules/public-landing/public/account.html +4 -6
  369. package/modules/public-landing/public/assets/cosmos.css +13 -6
  370. package/modules/public-landing/public/connections.html +4 -6
  371. package/modules/public-landing/public/contact.html +4 -6
  372. package/modules/public-landing/public/guild.html +4 -6
  373. package/modules/public-landing/public/index.html +11 -9
  374. package/modules/public-landing/public/invitations.html +4 -6
  375. package/modules/public-landing/public/privacy.html +4 -6
  376. package/modules/public-landing/public/projects.html +168 -46
  377. package/modules/public-landing/public/terms.html +4 -6
  378. package/modules/raise/content/copy.json +40 -0
  379. package/modules/raise/content/nda.html +39 -0
  380. package/modules/raise/content/settings.json +49 -0
  381. package/modules/raise/db.js +95 -0
  382. package/modules/raise/migrations/raise_001_tables.sql +71 -0
  383. package/modules/raise/module.json +28 -0
  384. package/modules/raise/page.js +194 -0
  385. package/modules/raise/public/edit.js +152 -0
  386. package/modules/raise/public/favicon.svg +1 -0
  387. package/modules/raise/public/logo-ink.svg +1 -0
  388. package/modules/raise/public/logo-night.svg +1 -0
  389. package/modules/raise/public/mode.js +8 -0
  390. package/modules/raise/public/raise.css +234 -0
  391. package/modules/raise/public/raise.js +91 -0
  392. package/modules/raise/raise.js +174 -0
  393. package/modules/raise/routes/raise.js +152 -0
  394. package/modules/raise/views/gate.html +39 -0
  395. package/modules/raise/views/nda.html +21 -0
  396. package/modules/raise/views/page.html +133 -0
  397. package/modules/raise/web.js +72 -0
  398. package/modules/render-deploy/deploys.js +1 -1
  399. package/modules/render-deploy/render.js +2 -2
  400. package/modules/security/secret-scrub.js +3 -3
  401. package/modules/security/security.js +1 -1
  402. package/modules/security/tests/artifact_scan.mjs +1 -1
  403. package/modules/security/tests/mirror.mjs +1 -1
  404. package/modules/security/tests/scan_store.mjs +1 -1
  405. package/modules/sessions/db.js +2 -2
  406. package/modules/sessions/pulse.js +2 -2
  407. package/modules/sessions/routes/sessions.js +1 -1
  408. package/modules/specialities/specialities.js +1 -1
  409. package/modules/status-ui/public/README.md +3 -4
  410. package/modules/status-ui/public/index.html +5 -31
  411. package/modules/status-ui/public/status.js +6 -174
  412. package/modules/status-ui/public/style.css +4 -133
  413. package/modules/ui-design/docs/design-contract.md +3 -3
  414. package/modules/ui-design/kit/README.md +1 -1
  415. package/modules/ui-design/kit/serve.js +13 -4
  416. package/modules/ui-design/scripts/design-sync.js +1 -1
  417. package/modules/ui-design/scripts/figma-design-sync.js +1 -1
  418. package/modules/ui-design/scripts/validate-design.js +1 -1
  419. package/package-lock.json +27 -11
  420. package/package.json +2 -3
  421. package/release-notes.json +186 -0
  422. package/scripts/bongos/CLAUDE.md +15 -0
  423. package/scripts/bongos/abandon.js +137 -0
  424. package/scripts/bongos/accessibility-replay.js +195 -0
  425. package/scripts/bongos/address-park-sweep.sh +91 -0
  426. package/scripts/bongos/adopt-detect.js +123 -0
  427. package/scripts/bongos/adopt-import.js +111 -0
  428. package/scripts/bongos/adopt-preflight.js +187 -0
  429. package/scripts/bongos/adr-namespace.js +273 -0
  430. package/scripts/bongos/agent-invoke.js +689 -0
  431. package/scripts/bongos/agents-sync.js +502 -0
  432. package/scripts/bongos/api-alias-caller-scan.js +256 -0
  433. package/scripts/bongos/api-artifacts.js +91 -0
  434. package/scripts/bongos/api.js +86 -0
  435. package/scripts/bongos/api.ps1 +26 -0
  436. package/scripts/bongos/architect-audit.js +294 -0
  437. package/scripts/bongos/artifact-audit.js +326 -0
  438. package/scripts/bongos/artifact-format.js +203 -0
  439. package/scripts/bongos/ask.js +231 -0
  440. package/scripts/bongos/audit-authorship.sh +324 -0
  441. package/scripts/bongos/audit-deps.js +189 -0
  442. package/scripts/bongos/audit-gate.js +121 -0
  443. package/scripts/bongos/audit-rank-roles.js +131 -0
  444. package/scripts/bongos/audit-replay.sh +205 -0
  445. package/scripts/bongos/autobongos-digest.js +123 -0
  446. package/scripts/bongos/autobongos-grade-cap.js +187 -0
  447. package/scripts/bongos/autobongos-loop.js +210 -0
  448. package/scripts/bongos/autobongos-run.js +1361 -0
  449. package/scripts/bongos/autobongos-service.cmd +50 -0
  450. package/scripts/bongos/autobongos-service.ps1 +270 -0
  451. package/scripts/bongos/autobongos-tweak-lane.js +262 -0
  452. package/scripts/bongos/autobongos-verify.js +618 -0
  453. package/scripts/bongos/autonomy-gate.js +135 -0
  454. package/scripts/bongos/autonomy-gauge-statusline.js +124 -0
  455. package/scripts/bongos/autonomy-gauge.js +84 -0
  456. package/scripts/bongos/backfill-cost.js +176 -0
  457. package/scripts/bongos/backfill-disciplines.js +144 -0
  458. package/scripts/bongos/backfill-session-earnings.js +123 -0
  459. package/scripts/bongos/backfill-session-types.js +87 -0
  460. package/scripts/bongos/backfill-sessions.js +411 -0
  461. package/scripts/bongos/backfill-subagent-rewards.js +485 -0
  462. package/scripts/bongos/backfill-task-rewards.js +413 -0
  463. package/scripts/bongos/backlog-review.js +399 -0
  464. package/scripts/bongos/backup-dropin-sweep.sh +95 -0
  465. package/scripts/bongos/backup.js +116 -0
  466. package/scripts/bongos/baseline-staleness.js +217 -0
  467. package/scripts/bongos/bfg-principal-token.js +65 -0
  468. package/scripts/bongos/bug-attachment-audit.js +149 -0
  469. package/scripts/bongos/bug-attachment-recover.js +198 -0
  470. package/scripts/bongos/bug-triage.js +292 -0
  471. package/scripts/bongos/build-bongos.js +94 -0
  472. package/scripts/bongos/bump-version.js +221 -0
  473. package/scripts/bongos/capture.js +481 -0
  474. package/scripts/bongos/category-advisory-guard.js +206 -0
  475. package/scripts/bongos/ci-grade.js +82 -0
  476. package/scripts/bongos/claim-recall.js +112 -0
  477. package/scripts/bongos/claim.js +789 -0
  478. package/scripts/bongos/claude-materialize.js +1200 -0
  479. package/scripts/bongos/claude-md-template.js +142 -0
  480. package/scripts/bongos/cleanup-orphans.js +74 -0
  481. package/scripts/bongos/cli-lib.js +1226 -0
  482. package/scripts/bongos/client-baseurl-guard.js +116 -0
  483. package/scripts/bongos/codemod-rename-scripts-gds.js +380 -0
  484. package/scripts/bongos/conductor-dispatch.js +535 -0
  485. package/scripts/bongos/context-pack.js +326 -0
  486. package/scripts/bongos/control-manifest.js +199 -0
  487. package/scripts/bongos/copy-apply.js +758 -0
  488. package/scripts/bongos/copy-inventory.js +571 -0
  489. package/scripts/bongos/core-origin-follow.js +185 -0
  490. package/scripts/bongos/core-pin-sync.js +260 -0
  491. package/scripts/bongos/cost-report.js +63 -0
  492. package/scripts/bongos/cost.js +47 -0
  493. package/scripts/bongos/credential-presence.js +296 -0
  494. package/scripts/bongos/cutover-codemod.js +240 -0
  495. package/scripts/bongos/db-backup-nightly.sh +232 -0
  496. package/scripts/bongos/db-backup-offsite.sh +267 -0
  497. package/scripts/bongos/demote.js +45 -0
  498. package/scripts/bongos/deploy-divergence.js +454 -0
  499. package/scripts/bongos/deploy-main-audit-gate.sh +97 -0
  500. package/scripts/bongos/design-sync.js +12 -0
  501. package/scripts/bongos/dev-box-guard.js +166 -0
  502. package/scripts/bongos/dev-lib.js +722 -0
  503. package/scripts/bongos/dev.js +645 -0
  504. package/scripts/bongos/device-flow-help.js +72 -0
  505. package/scripts/bongos/diagnose-achievements.js +118 -0
  506. package/scripts/bongos/diagram-facts.js +355 -0
  507. package/scripts/bongos/discord-channels.js +77 -0
  508. package/scripts/bongos/do-api.js +109 -0
  509. package/scripts/bongos/doc-cli-guard.js +274 -0
  510. package/scripts/bongos/doc-comment-coverage.js +139 -0
  511. package/scripts/bongos/doc-control-claims.js +170 -0
  512. package/scripts/bongos/docs-entropy.js +453 -0
  513. package/scripts/bongos/doctor.js +493 -0
  514. package/scripts/bongos/enroll-control-plane.js +101 -0
  515. package/scripts/bongos/exec-path-guard.js +564 -0
  516. package/scripts/bongos/feedback-send.js +249 -0
  517. package/scripts/bongos/fetch-art-key.js +106 -0
  518. package/scripts/bongos/fetch-sound-prefs.js +126 -0
  519. package/scripts/bongos/figma-design-sync.js +11 -0
  520. package/scripts/bongos/find-untested.js +371 -0
  521. package/scripts/bongos/fitness-checks-error-envelope.js +134 -0
  522. package/scripts/bongos/fitness-checks-identity.js +332 -0
  523. package/scripts/bongos/fitness-checks-packaging.js +132 -0
  524. package/scripts/bongos/fitness-checks-route-pins.js +76 -0
  525. package/scripts/bongos/fitness-checks-vocabulary.js +392 -0
  526. package/scripts/bongos/fitness-checks-write-validation.js +157 -0
  527. package/scripts/bongos/fitness-lib.js +127 -0
  528. package/scripts/bongos/fitness-migration-contraction.js +50 -0
  529. package/scripts/bongos/fitness-ratchets.js +594 -0
  530. package/scripts/bongos/fitness.js +1498 -0
  531. package/scripts/bongos/forwarder.js +80 -0
  532. package/scripts/bongos/gate-review.js +330 -0
  533. package/scripts/bongos/gating.js +348 -0
  534. package/scripts/{gds → bongos}/gds-db-backup.service +6 -6
  535. package/scripts/{gds → bongos}/gds-db-backup.timer +4 -4
  536. package/scripts/{gds → bongos}/gds-db-offsite.service +4 -4
  537. package/scripts/{gds → bongos}/gds-db-offsite.timer +4 -4
  538. package/scripts/bongos/gds-literal-scan.js +196 -0
  539. package/scripts/bongos/gen-api-client.js +576 -0
  540. package/scripts/bongos/gen-api-docs.js +1111 -0
  541. package/scripts/bongos/gen-atlas.js +366 -0
  542. package/scripts/bongos/gen-diagrams.js +608 -0
  543. package/scripts/bongos/gen-file-map.js +337 -0
  544. package/scripts/bongos/gen-freshness.js +32 -0
  545. package/scripts/bongos/gen-interaction-posture.js +122 -0
  546. package/scripts/bongos/gen-repo-map.js +540 -0
  547. package/scripts/bongos/gen-role-responsibilities.js +134 -0
  548. package/scripts/bongos/gen-session-index.js +243 -0
  549. package/scripts/bongos/gen-sounds.js +176 -0
  550. package/scripts/bongos/git-merge-regen.js +254 -0
  551. package/scripts/bongos/go-live.js +1071 -0
  552. package/scripts/bongos/goal.js +272 -0
  553. package/scripts/bongos/government-walk.js +1477 -0
  554. package/scripts/bongos/grade-correlation-audit.js +310 -0
  555. package/scripts/bongos/grade-replay.js +237 -0
  556. package/scripts/bongos/grade-smoke.js +205 -0
  557. package/scripts/bongos/home-isolation-guard.js +126 -0
  558. package/scripts/bongos/hooks/pre-push.js +211 -0
  559. package/scripts/bongos/howto.js +145 -0
  560. package/scripts/bongos/http-api-client.js +81 -0
  561. package/scripts/bongos/identity-strip.js +75 -0
  562. package/scripts/bongos/init.js +1159 -0
  563. package/scripts/bongos/install-git-hooks.js +200 -0
  564. package/scripts/bongos/instance-apex.js +38 -0
  565. package/scripts/bongos/intent-retry.js +52 -0
  566. package/scripts/bongos/key-card.js +222 -0
  567. package/scripts/bongos/key-status.js +126 -0
  568. package/scripts/bongos/land-watch.js +201 -0
  569. package/scripts/bongos/leak-scan-allowlist.js +293 -0
  570. package/scripts/bongos/learning-capture.js +145 -0
  571. package/scripts/bongos/lib.sh +74 -0
  572. package/scripts/bongos/linkify-refs.js +655 -0
  573. package/scripts/bongos/lint-infra-exec.js +70 -0
  574. package/scripts/bongos/lint-migrations.js +102 -0
  575. package/scripts/bongos/lint-workflow-exec.js +63 -0
  576. package/scripts/bongos/local-preview-lib.js +128 -0
  577. package/scripts/bongos/local-preview.js +82 -0
  578. package/scripts/bongos/login.js +360 -0
  579. package/scripts/bongos/main-audit.js +625 -0
  580. package/scripts/bongos/me.js +97 -0
  581. package/scripts/bongos/memory-map.js +176 -0
  582. package/scripts/bongos/merge-lock.js +71 -0
  583. package/scripts/bongos/migration-namespace.js +313 -0
  584. package/scripts/bongos/mirror-lineage-check.js +343 -0
  585. package/scripts/bongos/mirror-redact.js +350 -0
  586. package/scripts/bongos/module-artifact.js +289 -0
  587. package/scripts/bongos/module-assess-docs.js +238 -0
  588. package/scripts/bongos/module-assess-installs.js +228 -0
  589. package/scripts/bongos/module-assess-score.js +111 -0
  590. package/scripts/bongos/module-assess-security.js +252 -0
  591. package/scripts/bongos/module-assess-tests.js +278 -0
  592. package/scripts/bongos/module-assess-version.js +92 -0
  593. package/scripts/bongos/module-error-report.js +148 -0
  594. package/scripts/{gds → bongos}/module-test-runner/README.md +3 -3
  595. package/scripts/{gds → bongos}/module-test-runner/module-tests.yml +2 -2
  596. package/scripts/bongos/module-test-runner.js +414 -0
  597. package/scripts/bongos/module.js +1376 -0
  598. package/scripts/bongos/move-escalation.js +141 -0
  599. package/scripts/{gds → bongos}/newcomer-floor.config.json +1 -1
  600. package/scripts/bongos/newcomer-floor.js +421 -0
  601. package/scripts/{gds → bongos}/newcomer-floor.templates.json +13 -13
  602. package/scripts/bongos/newcomer-floor.test.js +235 -0
  603. package/scripts/bongos/next-number.js +163 -0
  604. package/scripts/bongos/oauth-secret.js +202 -0
  605. package/scripts/bongos/onboard.js +267 -0
  606. package/scripts/bongos/onboarding-analyze.js +226 -0
  607. package/scripts/bongos/onboarding-config.js +179 -0
  608. package/scripts/bongos/onboarding-ship.js +92 -0
  609. package/scripts/bongos/pack-env-prefix.js +73 -0
  610. package/scripts/bongos/package-core.js +1200 -0
  611. package/scripts/bongos/page-inventory.js +348 -0
  612. package/scripts/bongos/page-reader.js +722 -0
  613. package/scripts/bongos/paste-token.js +212 -0
  614. package/scripts/bongos/plain-cards.js +351 -0
  615. package/scripts/bongos/portability-smoke-art.sh +85 -0
  616. package/scripts/bongos/portability-smoke-memory.sh +176 -0
  617. package/scripts/bongos/preflight.js +214 -0
  618. package/scripts/bongos/probe-cache.js +246 -0
  619. package/scripts/bongos/prove-strict-versioning.js +284 -0
  620. package/scripts/bongos/provision-auto-upgrade.js +162 -0
  621. package/scripts/bongos/provision-byo-host.js +68 -0
  622. package/scripts/bongos/provision-capacity.js +79 -0
  623. package/scripts/bongos/provision-caps.js +63 -0
  624. package/scripts/bongos/provision-config.js +233 -0
  625. package/scripts/bongos/provision-core-upgrade.js +1166 -0
  626. package/scripts/bongos/provision-disconnect.js +88 -0
  627. package/scripts/bongos/provision-github-setup.js +168 -0
  628. package/scripts/bongos/provision-net.js +357 -0
  629. package/scripts/bongos/provision-pin-key.js +176 -0
  630. package/scripts/bongos/provision-pin-replay.js +126 -0
  631. package/scripts/bongos/provision-process.js +170 -0
  632. package/scripts/bongos/provision-render.js +201 -0
  633. package/scripts/bongos/provision-repo-auth.js +164 -0
  634. package/scripts/bongos/provision-repo-private.js +98 -0
  635. package/scripts/bongos/provision-repo.js +1337 -0
  636. package/scripts/bongos/provision-teardown.js +106 -0
  637. package/scripts/bongos/provision-units.js +469 -0
  638. package/scripts/bongos/provision.js +1479 -0
  639. package/scripts/bongos/publish-credential-check.js +66 -0
  640. package/scripts/bongos/publish-integration-gate.js +142 -0
  641. package/scripts/bongos/publish-manifest.js +440 -0
  642. package/scripts/bongos/publish-watch.js +268 -0
  643. package/scripts/bongos/pulse.js +338 -0
  644. package/scripts/bongos/push-main.js +56 -0
  645. package/scripts/bongos/push-path-brief.js +100 -0
  646. package/scripts/bongos/read-session-export.js +359 -0
  647. package/scripts/bongos/reauth.js +155 -0
  648. package/scripts/bongos/recall.js +183 -0
  649. package/scripts/bongos/redteam-patrol.js +437 -0
  650. package/scripts/bongos/regen-instance-docs.js +47 -0
  651. package/scripts/bongos/release-core.js +80 -0
  652. package/scripts/bongos/release-notes.js +271 -0
  653. package/scripts/bongos/release.js +139 -0
  654. package/scripts/bongos/rename-history-check.js +369 -0
  655. package/scripts/bongos/rename-ledger-prose.js +482 -0
  656. package/scripts/bongos/render-api.js +197 -0
  657. package/scripts/bongos/render-check.js +206 -0
  658. package/scripts/bongos/render-ideas.js +226 -0
  659. package/scripts/bongos/render-payload.js +85 -0
  660. package/scripts/bongos/repo-metrics.js +363 -0
  661. package/scripts/bongos/review-sheet.js +108 -0
  662. package/scripts/bongos/role-pack-guard.js +142 -0
  663. package/scripts/bongos/route-shadow-guard.js +175 -0
  664. package/scripts/bongos/routine-schedule.js +318 -0
  665. package/scripts/bongos/run-routine.js +257 -0
  666. package/scripts/bongos/run-unit-tests.js +654 -0
  667. package/scripts/bongos/runner-drift.js +151 -0
  668. package/scripts/bongos/sandbox-stage.js +459 -0
  669. package/scripts/bongos/scope-map-guard.js +300 -0
  670. package/scripts/bongos/scope-roster-guard.js +118 -0
  671. package/scripts/bongos/seam-wiring-guard.js +275 -0
  672. package/scripts/bongos/search-ingest-db.js +288 -0
  673. package/scripts/bongos/search-ingest-md.js +269 -0
  674. package/scripts/bongos/seed-bongos-v1-idea-routing-tasks.js +152 -0
  675. package/scripts/bongos/seed-bv1-profiles-tasks.js +135 -0
  676. package/scripts/bongos/seed-bv2-ideator-surface-tasks.js +390 -0
  677. package/scripts/bongos/seed-staging.sh +117 -0
  678. package/scripts/bongos/seed-verify-criteria.js +124 -0
  679. package/scripts/bongos/sequence.js +597 -0
  680. package/scripts/bongos/session-cost.js +430 -0
  681. package/scripts/bongos/session-digest-build.js +293 -0
  682. package/scripts/bongos/session-digest.js +200 -0
  683. package/scripts/bongos/session-eval.js +631 -0
  684. package/scripts/bongos/session-transcript-build.js +155 -0
  685. package/scripts/bongos/session-transcript-upload.js +29 -0
  686. package/scripts/bongos/session.js +404 -0
  687. package/scripts/bongos/setup.js +646 -0
  688. package/scripts/bongos/ship-check.js +89 -0
  689. package/scripts/bongos/ship-deploy-target.js +393 -0
  690. package/scripts/bongos/ship-escalation.js +167 -0
  691. package/scripts/bongos/ship-finish.js +420 -0
  692. package/scripts/bongos/ship-flow.js +1217 -0
  693. package/scripts/bongos/ship-git.js +100 -0
  694. package/scripts/bongos/ship-grade-steps.js +547 -0
  695. package/scripts/bongos/ship-grade.js +426 -0
  696. package/scripts/bongos/ship-honesty.js +314 -0
  697. package/scripts/bongos/ship-io.js +139 -0
  698. package/scripts/bongos/ship-land.js +1130 -0
  699. package/scripts/bongos/ship-memory-sync.js +249 -0
  700. package/scripts/bongos/ship-merge-gate.js +225 -0
  701. package/scripts/bongos/ship-merge.js +466 -0
  702. package/scripts/bongos/ship-mode-ask.js +138 -0
  703. package/scripts/bongos/ship-mode-manual.js +54 -0
  704. package/scripts/bongos/ship-preflight-steps.js +399 -0
  705. package/scripts/bongos/ship-regen.js +291 -0
  706. package/scripts/bongos/ship-resume.js +201 -0
  707. package/scripts/bongos/ship-session-upload.js +313 -0
  708. package/scripts/bongos/ship-state.js +110 -0
  709. package/scripts/bongos/ship-surprise.js +84 -0
  710. package/scripts/bongos/ship-visual.js +75 -0
  711. package/scripts/bongos/ship.js +382 -0
  712. package/scripts/bongos/shipping-mode.js +71 -0
  713. package/scripts/bongos/skill-lint.js +250 -0
  714. package/scripts/bongos/skill-preflight.js +361 -0
  715. package/scripts/bongos/smoke-batch-claim.sh +238 -0
  716. package/scripts/bongos/smoke-batch-release.sh +316 -0
  717. package/scripts/bongos/smoke-claim-consistency.sh +222 -0
  718. package/scripts/bongos/smoke-dependencies.sh +143 -0
  719. package/scripts/bongos/smoke-gds.js +256 -0
  720. package/scripts/bongos/smoke-write.sh +275 -0
  721. package/scripts/bongos/source-text-test-scan.js +106 -0
  722. package/scripts/bongos/spark.js +294 -0
  723. package/scripts/bongos/stale-worktrees.js +212 -0
  724. package/scripts/bongos/start-goals.js +102 -0
  725. package/scripts/bongos/start.js +1090 -0
  726. package/scripts/bongos/status.js +545 -0
  727. package/scripts/bongos/strand-watch.js +315 -0
  728. package/scripts/bongos/stranded-rows.js +200 -0
  729. package/scripts/bongos/stray-unit-sweep.sh +71 -0
  730. package/scripts/bongos/surface.js +101 -0
  731. package/scripts/bongos/task.js +273 -0
  732. package/scripts/bongos/test-path-guard.js +99 -0
  733. package/scripts/bongos/triage.js +742 -0
  734. package/scripts/bongos/turn-end-sound.js +74 -0
  735. package/scripts/bongos/tweak-halt.js +70 -0
  736. package/scripts/bongos/tweak-renders.js +200 -0
  737. package/scripts/bongos/uat.js +120 -0
  738. package/scripts/bongos/ui-kit-transform.js +43 -0
  739. package/scripts/bongos/update-channel.js +512 -0
  740. package/scripts/bongos/update-sweep.js +829 -0
  741. package/scripts/bongos/upgrade-artist-gate.js +46 -0
  742. package/scripts/bongos/upgrade-commit-identity.js +32 -0
  743. package/scripts/bongos/upgrade-migrate.js +224 -0
  744. package/scripts/bongos/upgrade-operator.js +73 -0
  745. package/scripts/bongos/upgrade-outcome.js +174 -0
  746. package/scripts/bongos/upgrade.js +1499 -0
  747. package/scripts/bongos/validate-design.js +12 -0
  748. package/scripts/bongos/version-close.js +621 -0
  749. package/scripts/bongos/version-literal-guard.js +140 -0
  750. package/scripts/bongos/version-select.js +79 -0
  751. package/scripts/bongos/visual-review-nudge.js +39 -0
  752. package/scripts/bongos/wedge-remedy.js +174 -0
  753. package/scripts/bongos/worktree-claim-guard.js +130 -0
  754. package/scripts/bongos/worktree.js +449 -0
  755. package/scripts/discord/post.js +1 -1
  756. package/scripts/gds/README.md +9 -0
  757. package/scripts/gds/abandon.js +6 -136
  758. package/scripts/gds/accessibility-replay.js +5 -194
  759. package/scripts/gds/address-park-sweep.sh +7 -90
  760. package/scripts/gds/adopt-detect.js +5 -121
  761. package/scripts/gds/adopt-import.js +5 -109
  762. package/scripts/gds/adopt-preflight.js +5 -185
  763. package/scripts/gds/adr-namespace.js +5 -271
  764. package/scripts/gds/agent-invoke.js +5 -687
  765. package/scripts/gds/agents-sync.js +5 -500
  766. package/scripts/gds/api-alias-caller-scan.js +5 -255
  767. package/scripts/gds/api-artifacts.js +6 -0
  768. package/scripts/gds/api.js +6 -85
  769. package/scripts/gds/api.ps1 +8 -26
  770. package/scripts/gds/architect-audit.js +6 -293
  771. package/scripts/gds/artifact-audit.js +5 -324
  772. package/scripts/gds/artifact-format.js +6 -203
  773. package/scripts/gds/ask.js +5 -229
  774. package/scripts/gds/audit-authorship.sh +7 -328
  775. package/scripts/gds/audit-deps.js +6 -188
  776. package/scripts/gds/audit-gate.js +5 -119
  777. package/scripts/gds/audit-rank-roles.js +6 -171
  778. package/scripts/gds/audit-replay.sh +7 -204
  779. package/scripts/gds/autobongos-digest.js +5 -121
  780. package/scripts/gds/autobongos-grade-cap.js +5 -186
  781. package/scripts/gds/autobongos-loop.js +5 -208
  782. package/scripts/gds/autobongos-run.js +5 -1359
  783. package/scripts/gds/autobongos-service.cmd +8 -49
  784. package/scripts/gds/autobongos-service.ps1 +8 -270
  785. package/scripts/gds/autobongos-tweak-lane.js +5 -261
  786. package/scripts/gds/autobongos-verify.js +5 -616
  787. package/scripts/gds/autonomy-gate.js +5 -133
  788. package/scripts/gds/autonomy-gauge-statusline.js +5 -122
  789. package/scripts/gds/autonomy-gauge.js +5 -82
  790. package/scripts/gds/backfill-cost.js +6 -175
  791. package/scripts/gds/backfill-disciplines.js +5 -142
  792. package/scripts/gds/backfill-session-earnings.js +5 -121
  793. package/scripts/gds/backfill-session-types.js +5 -85
  794. package/scripts/gds/backfill-sessions.js +5 -409
  795. package/scripts/gds/backfill-subagent-rewards.js +5 -483
  796. package/scripts/gds/backfill-task-rewards.js +5 -411
  797. package/scripts/gds/backlog-review.js +6 -398
  798. package/scripts/gds/backup-dropin-sweep.sh +7 -94
  799. package/scripts/gds/backup.js +6 -115
  800. package/scripts/gds/baseline-staleness.js +5 -215
  801. package/scripts/gds/bfg-principal-token.js +6 -64
  802. package/scripts/gds/bug-attachment-audit.js +5 -147
  803. package/scripts/gds/bug-attachment-recover.js +5 -196
  804. package/scripts/gds/bug-triage.js +6 -291
  805. package/scripts/gds/build-bongos.js +5 -92
  806. package/scripts/gds/bump-version.js +5 -219
  807. package/scripts/gds/capture.js +6 -480
  808. package/scripts/gds/category-advisory-guard.js +5 -205
  809. package/scripts/gds/ci-grade.js +6 -81
  810. package/scripts/gds/claim-recall.js +6 -111
  811. package/scripts/gds/claim.js +6 -788
  812. package/scripts/gds/claude-materialize.js +5 -1198
  813. package/scripts/gds/claude-md-template.js +5 -140
  814. package/scripts/gds/cleanup-orphans.js +6 -73
  815. package/scripts/gds/cli-lib.js +6 -1204
  816. package/scripts/gds/client-baseurl-guard.js +5 -114
  817. package/scripts/gds/conductor-dispatch.js +6 -534
  818. package/scripts/gds/context-pack.js +6 -325
  819. package/scripts/gds/control-manifest.js +5 -197
  820. package/scripts/gds/copy-apply.js +5 -756
  821. package/scripts/gds/copy-inventory.js +5 -569
  822. package/scripts/gds/core-origin-follow.js +5 -184
  823. package/scripts/gds/core-pin-sync.js +5 -258
  824. package/scripts/gds/cost-report.js +6 -62
  825. package/scripts/gds/cost.js +6 -46
  826. package/scripts/gds/credential-presence.js +5 -294
  827. package/scripts/gds/cutover-codemod.js +5 -239
  828. package/scripts/gds/db-backup-nightly.sh +7 -231
  829. package/scripts/gds/db-backup-offsite.sh +7 -266
  830. package/scripts/gds/demote.js +6 -44
  831. package/scripts/gds/deploy-divergence.js +6 -445
  832. package/scripts/gds/deploy-main-audit-gate.sh +7 -96
  833. package/scripts/gds/design-sync.js +5 -10
  834. package/scripts/gds/dev-box-guard.js +5 -164
  835. package/scripts/gds/dev-lib.js +5 -721
  836. package/scripts/gds/dev.js +5 -643
  837. package/scripts/gds/device-flow-help.js +5 -70
  838. package/scripts/gds/diagnose-achievements.js +5 -116
  839. package/scripts/gds/diagram-facts.js +6 -355
  840. package/scripts/gds/discord-channels.js +5 -75
  841. package/scripts/gds/do-api.js +6 -109
  842. package/scripts/gds/doc-cli-guard.js +5 -266
  843. package/scripts/gds/doc-comment-coverage.js +5 -137
  844. package/scripts/gds/doc-control-claims.js +5 -166
  845. package/scripts/gds/docs-entropy.js +5 -443
  846. package/scripts/gds/doctor.js +6 -492
  847. package/scripts/gds/enroll-control-plane.js +5 -99
  848. package/scripts/gds/exec-path-guard.js +5 -562
  849. package/scripts/gds/feedback-send.js +5 -247
  850. package/scripts/gds/fetch-art-key.js +5 -104
  851. package/scripts/gds/fetch-sound-prefs.js +5 -124
  852. package/scripts/gds/figma-design-sync.js +5 -9
  853. package/scripts/gds/find-untested.js +5 -369
  854. package/scripts/gds/fitness-checks-error-envelope.js +5 -133
  855. package/scripts/gds/fitness-checks-identity.js +5 -342
  856. package/scripts/gds/fitness-checks-packaging.js +5 -131
  857. package/scripts/gds/fitness-checks-route-pins.js +5 -75
  858. package/scripts/gds/fitness-checks-vocabulary.js +5 -391
  859. package/scripts/gds/fitness-checks-write-validation.js +5 -156
  860. package/scripts/gds/fitness-lib.js +5 -126
  861. package/scripts/gds/fitness-migration-contraction.js +5 -49
  862. package/scripts/gds/fitness-ratchets.js +5 -563
  863. package/scripts/gds/fitness.js +5 -1493
  864. package/scripts/gds/gate-review.js +5 -328
  865. package/scripts/gds/gating.js +5 -346
  866. package/scripts/gds/gds-literal-scan.js +5 -194
  867. package/scripts/gds/gen-api-client.js +5 -555
  868. package/scripts/gds/gen-api-docs.js +5 -1100
  869. package/scripts/gds/gen-atlas.js +5 -364
  870. package/scripts/gds/gen-diagrams.js +6 -607
  871. package/scripts/gds/gen-file-map.js +5 -335
  872. package/scripts/gds/gen-freshness.js +5 -31
  873. package/scripts/gds/gen-interaction-posture.js +5 -120
  874. package/scripts/gds/gen-repo-map.js +5 -538
  875. package/scripts/gds/gen-role-responsibilities.js +5 -133
  876. package/scripts/gds/gen-session-index.js +5 -241
  877. package/scripts/gds/gen-sounds.js +5 -174
  878. package/scripts/gds/git-merge-regen.js +6 -291
  879. package/scripts/gds/go-live.js +5 -1069
  880. package/scripts/gds/goal.js +6 -271
  881. package/scripts/gds/government-walk.js +5 -1475
  882. package/scripts/gds/grade-correlation-audit.js +5 -308
  883. package/scripts/gds/grade-replay.js +5 -235
  884. package/scripts/gds/grade-smoke.js +6 -204
  885. package/scripts/gds/home-isolation-guard.js +5 -125
  886. package/scripts/gds/hooks/pre-push.js +5 -209
  887. package/scripts/gds/howto.js +5 -143
  888. package/scripts/gds/http-api-client.js +6 -81
  889. package/scripts/gds/identity-strip.js +5 -74
  890. package/scripts/gds/init.js +5 -1157
  891. package/scripts/gds/install-git-hooks.js +5 -198
  892. package/scripts/gds/instance-apex.js +5 -37
  893. package/scripts/gds/intent-retry.js +5 -51
  894. package/scripts/gds/key-card.js +6 -221
  895. package/scripts/gds/key-status.js +5 -124
  896. package/scripts/gds/land-watch.js +5 -199
  897. package/scripts/gds/leak-scan-allowlist.js +5 -291
  898. package/scripts/gds/learning-capture.js +6 -144
  899. package/scripts/gds/lib.sh +7 -73
  900. package/scripts/gds/linkify-refs.js +6 -654
  901. package/scripts/gds/lint-infra-exec.js +5 -68
  902. package/scripts/gds/lint-migrations.js +5 -100
  903. package/scripts/gds/lint-workflow-exec.js +5 -61
  904. package/scripts/gds/local-preview-lib.js +6 -128
  905. package/scripts/gds/local-preview.js +6 -81
  906. package/scripts/gds/login.js +5 -358
  907. package/scripts/gds/main-audit.js +5 -623
  908. package/scripts/gds/me.js +6 -96
  909. package/scripts/gds/memory-map.js +5 -174
  910. package/scripts/gds/merge-lock.js +6 -70
  911. package/scripts/gds/migration-namespace.js +5 -311
  912. package/scripts/gds/mirror-lineage-check.js +5 -341
  913. package/scripts/gds/mirror-redact.js +5 -348
  914. package/scripts/gds/module-artifact.js +6 -289
  915. package/scripts/gds/module-assess-docs.js +6 -237
  916. package/scripts/gds/module-assess-installs.js +6 -227
  917. package/scripts/gds/module-assess-score.js +6 -110
  918. package/scripts/gds/module-assess-security.js +6 -251
  919. package/scripts/gds/module-assess-tests.js +6 -277
  920. package/scripts/gds/module-assess-version.js +6 -91
  921. package/scripts/gds/module-error-report.js +5 -146
  922. package/scripts/gds/module-test-runner.js +6 -413
  923. package/scripts/gds/module.js +5 -1374
  924. package/scripts/gds/move-escalation.js +5 -140
  925. package/scripts/gds/newcomer-floor.js +6 -420
  926. package/scripts/gds/newcomer-floor.test.js +6 -234
  927. package/scripts/gds/next-number.js +6 -162
  928. package/scripts/gds/oauth-secret.js +5 -200
  929. package/scripts/gds/onboard.js +5 -265
  930. package/scripts/gds/onboarding-analyze.js +6 -225
  931. package/scripts/gds/onboarding-config.js +6 -179
  932. package/scripts/gds/onboarding-ship.js +6 -91
  933. package/scripts/gds/pack-env-prefix.js +5 -72
  934. package/scripts/gds/package-core.js +5 -1102
  935. package/scripts/gds/page-inventory.js +5 -346
  936. package/scripts/gds/page-reader.js +5 -720
  937. package/scripts/gds/paste-token.js +6 -211
  938. package/scripts/gds/plain-cards.js +5 -350
  939. package/scripts/gds/portability-smoke-art.sh +7 -84
  940. package/scripts/gds/portability-smoke-memory.sh +7 -175
  941. package/scripts/gds/preflight.js +5 -212
  942. package/scripts/gds/probe-cache.js +5 -244
  943. package/scripts/gds/prove-strict-versioning.js +6 -283
  944. package/scripts/gds/provision-auto-upgrade.js +5 -161
  945. package/scripts/gds/provision-byo-host.js +5 -67
  946. package/scripts/gds/provision-capacity.js +5 -78
  947. package/scripts/gds/provision-caps.js +5 -62
  948. package/scripts/gds/provision-config.js +5 -232
  949. package/scripts/gds/provision-core-upgrade.js +5 -1165
  950. package/scripts/gds/provision-disconnect.js +5 -87
  951. package/scripts/gds/provision-github-setup.js +5 -167
  952. package/scripts/gds/provision-net.js +5 -356
  953. package/scripts/gds/provision-pin-key.js +5 -175
  954. package/scripts/gds/provision-pin-replay.js +5 -125
  955. package/scripts/gds/provision-process.js +5 -169
  956. package/scripts/gds/provision-render.js +5 -200
  957. package/scripts/gds/provision-repo-auth.js +5 -163
  958. package/scripts/gds/provision-repo-private.js +5 -97
  959. package/scripts/gds/provision-repo.js +5 -1336
  960. package/scripts/gds/provision-teardown.js +5 -105
  961. package/scripts/gds/provision-units.js +5 -468
  962. package/scripts/gds/provision.js +5 -1477
  963. package/scripts/gds/publish-credential-check.js +6 -65
  964. package/scripts/gds/publish-integration-gate.js +5 -140
  965. package/scripts/gds/publish-manifest.js +5 -437
  966. package/scripts/gds/publish-watch.js +5 -266
  967. package/scripts/gds/pulse.js +6 -335
  968. package/scripts/gds/push-main.js +5 -54
  969. package/scripts/gds/push-path-brief.js +5 -98
  970. package/scripts/gds/read-session-export.js +5 -357
  971. package/scripts/gds/reauth.js +6 -154
  972. package/scripts/gds/recall.js +6 -182
  973. package/scripts/gds/redteam-patrol.js +5 -435
  974. package/scripts/gds/regen-instance-docs.js +5 -45
  975. package/scripts/gds/release-core.js +5 -78
  976. package/scripts/gds/release-notes.js +5 -270
  977. package/scripts/gds/release.js +6 -138
  978. package/scripts/gds/rename-history-check.js +5 -367
  979. package/scripts/gds/rename-ledger-prose.js +5 -480
  980. package/scripts/gds/render-api.js +5 -196
  981. package/scripts/gds/render-check.js +5 -204
  982. package/scripts/gds/render-ideas.js +6 -225
  983. package/scripts/gds/render-payload.js +5 -84
  984. package/scripts/gds/repo-metrics.js +6 -362
  985. package/scripts/gds/review-sheet.js +5 -106
  986. package/scripts/gds/role-pack-guard.js +5 -141
  987. package/scripts/gds/route-shadow-guard.js +5 -173
  988. package/scripts/gds/routine-schedule.js +5 -281
  989. package/scripts/gds/run-routine.js +5 -255
  990. package/scripts/gds/run-unit-tests.js +6 -659
  991. package/scripts/gds/runner-drift.js +5 -149
  992. package/scripts/gds/sandbox-stage.js +6 -458
  993. package/scripts/gds/scope-map-guard.js +5 -299
  994. package/scripts/gds/scope-roster-guard.js +5 -117
  995. package/scripts/gds/seam-wiring-guard.js +5 -274
  996. package/scripts/gds/search-ingest-db.js +6 -287
  997. package/scripts/gds/search-ingest-md.js +6 -268
  998. package/scripts/gds/seed-bongos-v1-idea-routing-tasks.js +6 -152
  999. package/scripts/gds/seed-bv1-profiles-tasks.js +6 -135
  1000. package/scripts/gds/seed-bv2-ideator-surface-tasks.js +6 -390
  1001. package/scripts/gds/seed-staging.sh +7 -116
  1002. package/scripts/gds/seed-verify-criteria.js +6 -124
  1003. package/scripts/gds/sequence.js +6 -596
  1004. package/scripts/gds/session-cost.js +6 -429
  1005. package/scripts/gds/session-digest-build.js +6 -293
  1006. package/scripts/gds/session-digest.js +6 -199
  1007. package/scripts/gds/session-eval.js +6 -630
  1008. package/scripts/gds/session-transcript-build.js +6 -155
  1009. package/scripts/gds/session-transcript-upload.js +6 -29
  1010. package/scripts/gds/session.js +6 -403
  1011. package/scripts/gds/setup.js +6 -645
  1012. package/scripts/gds/ship-check.js +5 -85
  1013. package/scripts/gds/ship-deploy-target.js +5 -392
  1014. package/scripts/gds/ship-escalation.js +5 -166
  1015. package/scripts/gds/ship-finish.js +5 -419
  1016. package/scripts/gds/ship-flow.js +5 -1216
  1017. package/scripts/gds/ship-git.js +5 -99
  1018. package/scripts/gds/ship-grade-steps.js +5 -546
  1019. package/scripts/gds/ship-grade.js +5 -425
  1020. package/scripts/gds/ship-honesty.js +5 -312
  1021. package/scripts/gds/ship-io.js +5 -138
  1022. package/scripts/gds/ship-land.js +5 -1129
  1023. package/scripts/gds/ship-memory-sync.js +5 -248
  1024. package/scripts/gds/ship-merge-gate.js +5 -224
  1025. package/scripts/gds/ship-merge.js +5 -465
  1026. package/scripts/gds/ship-mode-ask.js +5 -137
  1027. package/scripts/gds/ship-mode-manual.js +5 -53
  1028. package/scripts/gds/ship-preflight-steps.js +5 -398
  1029. package/scripts/gds/ship-regen.js +5 -313
  1030. package/scripts/gds/ship-resume.js +5 -200
  1031. package/scripts/gds/ship-session-upload.js +5 -312
  1032. package/scripts/gds/ship-state.js +5 -109
  1033. package/scripts/gds/ship-surprise.js +5 -83
  1034. package/scripts/gds/ship-visual.js +5 -74
  1035. package/scripts/gds/ship.js +5 -380
  1036. package/scripts/gds/shipping-mode.js +5 -69
  1037. package/scripts/gds/skill-lint.js +5 -248
  1038. package/scripts/gds/skill-preflight.js +5 -359
  1039. package/scripts/gds/smoke-batch-claim.sh +7 -237
  1040. package/scripts/gds/smoke-batch-release.sh +7 -315
  1041. package/scripts/gds/smoke-claim-consistency.sh +7 -221
  1042. package/scripts/gds/smoke-dependencies.sh +7 -142
  1043. package/scripts/gds/smoke-gds.js +6 -255
  1044. package/scripts/gds/smoke-write.sh +7 -274
  1045. package/scripts/gds/source-text-test-scan.js +7 -0
  1046. package/scripts/gds/spark.js +6 -293
  1047. package/scripts/gds/stale-worktrees.js +5 -210
  1048. package/scripts/gds/start-goals.js +5 -101
  1049. package/scripts/gds/start.js +6 -1089
  1050. package/scripts/gds/status.js +6 -544
  1051. package/scripts/gds/strand-watch.js +5 -313
  1052. package/scripts/gds/stranded-rows.js +5 -198
  1053. package/scripts/gds/stray-unit-sweep.sh +7 -70
  1054. package/scripts/gds/surface.js +5 -100
  1055. package/scripts/gds/task.js +6 -272
  1056. package/scripts/gds/test-path-guard.js +5 -97
  1057. package/scripts/gds/triage.js +6 -741
  1058. package/scripts/gds/turn-end-sound.js +5 -72
  1059. package/scripts/gds/tweak-halt.js +5 -68
  1060. package/scripts/gds/tweak-renders.js +5 -198
  1061. package/scripts/gds/uat.js +6 -119
  1062. package/scripts/gds/ui-kit-transform.js +5 -41
  1063. package/scripts/gds/update-channel.js +5 -510
  1064. package/scripts/gds/update-sweep.js +5 -827
  1065. package/scripts/gds/upgrade-artist-gate.js +5 -45
  1066. package/scripts/gds/upgrade-commit-identity.js +5 -31
  1067. package/scripts/gds/upgrade-migrate.js +5 -223
  1068. package/scripts/gds/upgrade-operator.js +6 -73
  1069. package/scripts/gds/upgrade-outcome.js +5 -173
  1070. package/scripts/gds/upgrade.js +5 -1497
  1071. package/scripts/gds/validate-design.js +5 -10
  1072. package/scripts/gds/version-close.js +6 -620
  1073. package/scripts/gds/version-literal-guard.js +5 -138
  1074. package/scripts/gds/version-select.js +5 -77
  1075. package/scripts/gds/visual-review-nudge.js +5 -38
  1076. package/scripts/gds/wedge-remedy.js +5 -173
  1077. package/scripts/gds/worktree-claim-guard.js +5 -129
  1078. package/scripts/gds/worktree.js +6 -448
  1079. package/scripts/hall-preview/refresh-fixtures.js +1 -1
  1080. package/scripts/hall-preview/server.js +2 -2
  1081. package/scripts/migrate.sh +3 -3
  1082. package/scripts/public-mirror-export.js +3 -3
  1083. package/scripts/security/dep-audit.js +50 -124
  1084. package/scripts/setup-builder.js +7 -7
  1085. package/src/bongos/api-errors.js +1 -0
  1086. package/src/bongos/api-prefix.js +1 -1
  1087. package/src/bongos/auth-github.js +19 -3
  1088. package/src/bongos/auth-idp.js +7 -0
  1089. package/src/bongos/claim-attribution.js +2 -2
  1090. package/src/bongos/core-moves.js +1 -1
  1091. package/src/bongos/core-update.js +3 -3
  1092. package/src/bongos/craft-mode.js +2 -2
  1093. package/src/bongos/db-kernel.js +15 -3
  1094. package/src/bongos/db.js +30 -4
  1095. package/src/bongos/github-repos.js +1 -1
  1096. package/src/bongos/llm-cache.js +1 -1
  1097. package/src/bongos/llm-pricing.js +1 -1
  1098. package/src/bongos/metrics.js +1 -1
  1099. package/src/bongos/middleware/rate-limit.js +2 -2
  1100. package/src/bongos/module-listing.js +93 -1
  1101. package/src/bongos/module-scope-map.js +90 -85
  1102. package/src/bongos/module-store.js +1 -1
  1103. package/src/bongos/module-submissions.js +1 -1
  1104. package/src/bongos/optimizer.js +1 -1
  1105. package/src/bongos/package-registry.js +1 -1
  1106. package/src/bongos/path-match.js +1 -1
  1107. package/src/bongos/permission-path-check.js +3 -3
  1108. package/src/bongos/platform-visibility-gate.js +3 -5
  1109. package/src/bongos/prelaunch-gate.js +7 -6
  1110. package/src/bongos/route-rank-check.js +2 -2
  1111. package/src/bongos/routes/auth.js +15 -2
  1112. package/src/bongos/routes/backup.js +1 -1
  1113. package/src/bongos/routes/builders.js +29 -1
  1114. package/src/bongos/routes/me.js +49 -18
  1115. package/src/bongos/routes/modules.js +29 -9
  1116. package/src/bongos/routes/public.js +3 -72
  1117. package/src/bongos/schema-lag.js +1 -1
  1118. package/src/bongos/sensitive-surfaces.js +1 -1
  1119. package/src/bongos/serve-internal.js +65 -16
  1120. package/src/bongos/software-update.js +2 -2
  1121. package/src/bongos/upgrade-hold.js +3 -3
  1122. package/src/hall-look.js +6 -5
  1123. package/src/module-api.js +3 -3
  1124. package/src/module-loader/catalog.js +1 -1
  1125. package/src/module-loader/error-tally.js +3 -3
  1126. package/src/module-loader/manifest-schema.js +3 -3
  1127. package/src/platform-server.js +10 -0
  1128. package/src/role-responsibilities.js +1 -1
  1129. package/src/stale-timer.js +2 -2
  1130. package/tests/accessibility_replay.mjs +1 -1
  1131. package/tests/activity_rollup_order_db.mjs +1 -1
  1132. package/tests/activity_snapshots_db.mjs +1 -1
  1133. package/tests/adopt_detect.mjs +1 -1
  1134. package/tests/adopt_import.mjs +1 -1
  1135. package/tests/adopt_preflight.mjs +1 -1
  1136. package/tests/adr_0089_scope.mjs +10 -7
  1137. package/tests/adr_0162_citation.mjs +1 -1
  1138. package/tests/adr_0162_gate_citation.mjs +1 -1
  1139. package/tests/agent_invoke.mjs +1 -1
  1140. package/tests/agent_invoke_live.mjs +3 -3
  1141. package/tests/agents_cron_trigger.mjs +2 -2
  1142. package/tests/agents_roster.mjs +1 -1
  1143. package/tests/agents_sync.mjs +4 -4
  1144. package/tests/allow_rule_guard.mjs +20 -20
  1145. package/tests/api_alias_caller_ratchet.mjs +9 -10
  1146. package/tests/api_alias_exceptions.mjs +7 -6
  1147. package/tests/api_artifacts.mjs +214 -0
  1148. package/tests/api_cli_flags.mjs +3 -3
  1149. package/tests/api_client.mjs +56 -54
  1150. package/tests/api_docs.mjs +30 -9
  1151. package/tests/api_error_envelope_buildcheck.mjs +1 -1
  1152. package/tests/api_msys_path_repair.mjs +2 -2
  1153. package/tests/architect.mjs +1 -1
  1154. package/tests/art_stage.mjs +2 -2
  1155. package/tests/artifact_audit.mjs +2 -2
  1156. package/tests/atlas.mjs +1 -1
  1157. package/tests/audit_deps.mjs +1 -1
  1158. package/tests/audit_gate.mjs +1 -1
  1159. package/tests/auth_flow_slice1.mjs +3 -3
  1160. package/tests/auth_inactive_builder.mjs +43 -5
  1161. package/tests/auth_session_expiry_db.mjs +16 -4
  1162. package/tests/auth_session_ttl.mjs +23 -0
  1163. package/tests/authorship_audit.mjs +2 -2
  1164. package/tests/autobongos_cadence.mjs +1 -1
  1165. package/tests/autobongos_fence.mjs +1 -1
  1166. package/tests/autobongos_grade_cap.mjs +2 -2
  1167. package/tests/autobongos_heartbeat_head.mjs +1 -1
  1168. package/tests/autobongos_host_access.mjs +3 -3
  1169. package/tests/autobongos_loop.mjs +17 -17
  1170. package/tests/autobongos_service_ps1.mjs +3 -3
  1171. package/tests/autobongos_tweak_lane.mjs +2 -2
  1172. package/tests/autobongos_verify.mjs +2 -2
  1173. package/tests/autonomous_fit_protected_paths.mjs +3 -3
  1174. package/tests/autonomy_config_idle.mjs +1 -1
  1175. package/tests/autonomy_daily_checks.mjs +201 -0
  1176. package/tests/autonomy_digest.mjs +1 -1
  1177. package/tests/autonomy_gate.mjs +1 -1
  1178. package/tests/autonomy_gauge.mjs +2 -2
  1179. package/tests/autonomy_runner_identity.mjs +1 -1
  1180. package/tests/backfill_sessions.mjs +8 -8
  1181. package/tests/backfill_subagent_rewards.mjs +1 -1
  1182. package/tests/backfill_task_rewards.mjs +2 -2
  1183. package/tests/backlog_review.mjs +3 -3
  1184. package/tests/baseline_staleness.mjs +2 -2
  1185. package/tests/bfg.mjs +11 -5
  1186. package/tests/bfg_write.mjs +20 -11
  1187. package/tests/blockers_hall.mjs +14 -4
  1188. package/tests/blockers_page_ui.mjs +56 -12
  1189. package/tests/bongos_dispatch.mjs +5 -5
  1190. package/tests/bongos_login.mjs +2 -2
  1191. package/tests/bug_attachment_audit.mjs +1 -1
  1192. package/tests/bug_attachment_recover.mjs +2 -2
  1193. package/tests/bug_triage.mjs +3 -3
  1194. package/tests/build_info.mjs +1 -1
  1195. package/tests/builder_tester_tag.mjs +184 -0
  1196. package/tests/bump_version.mjs +3 -3
  1197. package/tests/canonical_profile_url.mjs +1 -1
  1198. package/tests/capture_error_format.mjs +1 -1
  1199. package/tests/capture_goal_routing.mjs +2 -2
  1200. package/tests/category_advisory_guard.mjs +3 -3
  1201. package/tests/claim_error_surface.mjs +2 -2
  1202. package/tests/claim_from_task_and_home.mjs +1 -1
  1203. package/tests/claim_gate_open_blocker.mjs +7 -4
  1204. package/tests/claim_gate_rebase.mjs +12 -8
  1205. package/tests/claim_recall.mjs +4 -4
  1206. package/tests/claim_resolve_worktree_lock.mjs +1 -1
  1207. package/tests/claude_materialize.mjs +68 -68
  1208. package/tests/clawback_confirmed_backlog.mjs +8 -5
  1209. package/tests/cli_allowlist_permissions.mjs +11 -11
  1210. package/tests/cli_dispatcher.mjs +2 -2
  1211. package/tests/cli_err_code.mjs +6 -6
  1212. package/tests/cli_exit_no_abort.mjs +7 -7
  1213. package/tests/cli_lib_formatters.mjs +2 -2
  1214. package/tests/cli_sessions.mjs +5 -5
  1215. package/tests/cli_surface.mjs +15 -15
  1216. package/tests/cli_token_reissue.mjs +2 -2
  1217. package/tests/client_baseurl_guard.mjs +1 -1
  1218. package/tests/client_bundle_route.mjs +35 -4
  1219. package/tests/cloud_bongos_pack.mjs +1 -1
  1220. package/tests/community_leaderboard_db.mjs +1 -1
  1221. package/tests/conductor.mjs +18 -18
  1222. package/tests/conflict_resolve.mjs +14 -16
  1223. package/tests/consumer_layout_boot.mjs +12 -12
  1224. package/tests/context_pack.mjs +6 -6
  1225. package/tests/control_manifest.mjs +4 -4
  1226. package/tests/copy_desk_page_reads.mjs +1 -1
  1227. package/tests/copy_desk_page_release.mjs +192 -0
  1228. package/tests/copy_inventory.mjs +2 -2
  1229. package/tests/core_auto_upgrade.mjs +1 -1
  1230. package/tests/core_move_notice.mjs +2 -2
  1231. package/tests/core_origin_follow.mjs +7 -7
  1232. package/tests/core_pin_sync.mjs +3 -3
  1233. package/tests/core_upgrade_door.mjs +2 -2
  1234. package/tests/core_upgrade_owner_door.mjs +34 -1
  1235. package/tests/core_upgrade_runner.mjs +19 -19
  1236. package/tests/credential_presence.mjs +2 -2
  1237. package/tests/credit_grant.mjs +3 -3
  1238. package/tests/credit_log_single_writer.mjs +5 -5
  1239. package/tests/criterion_ref_status.mjs +2 -2
  1240. package/tests/cross_discipline_priority_direction.mjs +3 -3
  1241. package/tests/cutover_codemod.mjs +2 -4
  1242. package/tests/db_backup_nightly.mjs +1 -1
  1243. package/tests/db_backup_offsite.mjs +1 -1
  1244. package/tests/db_ownership_handover.mjs +2 -2
  1245. package/tests/dead_deps.mjs +3 -3
  1246. package/tests/dependency_advisory.mjs +1 -1
  1247. package/tests/deploy_audit_gate.mjs +4 -4
  1248. package/tests/deploy_divergence_line.mjs +36 -16
  1249. package/tests/deploy_page_projects.mjs +35 -4
  1250. package/tests/dev_lib.mjs +2 -2
  1251. package/tests/dev_windows.mjs +2 -2
  1252. package/tests/diagram_facts_offset.mjs +1 -1
  1253. package/tests/diagram_repo_slug.mjs +1 -1
  1254. package/tests/diff_derived_signals.mjs +2 -2
  1255. package/tests/dns_preflight.mjs +2 -2
  1256. package/tests/do_api.mjs +3 -3
  1257. package/tests/doc_cli_guard.mjs +28 -28
  1258. package/tests/doc_comment_coverage.mjs +1 -1
  1259. package/tests/doc_control_claims.mjs +11 -11
  1260. package/tests/docs_entropy.mjs +2 -2
  1261. package/tests/docs_openapi_route.mjs +8 -6
  1262. package/tests/doctor_hooks.mjs +1 -1
  1263. package/tests/edit_hints.mjs +3 -2
  1264. package/tests/effective_visibility_predicate.mjs +1 -19
  1265. package/tests/env_knobs_neutral_prefix.mjs +13 -13
  1266. package/tests/exec_path_guard.mjs +4 -4
  1267. package/tests/executed_closure.mjs +18 -12
  1268. package/tests/file_map.mjs +1 -1
  1269. package/tests/find_untested.mjs +13 -13
  1270. package/tests/first_admin_bootstrap.mjs +1 -1
  1271. package/tests/fitness.mjs +16 -16
  1272. package/tests/fitness_gds_ratchet.mjs +2 -2
  1273. package/tests/fitness_installed_core.mjs +3 -3
  1274. package/tests/fitness_no_raw_nul.mjs +1 -1
  1275. package/tests/fitness_ratchets.mjs +3 -3
  1276. package/tests/fitness_scope_roster.mjs +2 -2
  1277. package/tests/fitness_two_root.mjs +8 -8
  1278. package/tests/fixtures/accessibility-replay.json +5 -5
  1279. package/tests/fixtures/grade-replay/recorded-panel-grades.json +1 -1
  1280. package/tests/fixtures/ideator-prefold/README.md +1 -1
  1281. package/tests/fixtures/page-ledger.mjs +22 -0
  1282. package/tests/fixtures/session-506-digest.json +5 -5
  1283. package/tests/gate_approvals.mjs +50 -0
  1284. package/tests/gate_review.mjs +8 -8
  1285. package/tests/gating_review_retired.mjs +2 -2
  1286. package/tests/gen_freshness.mjs +3 -3
  1287. package/tests/git_guard.mjs +3 -3
  1288. package/tests/git_merge_regen.mjs +41 -65
  1289. package/tests/github_one_trip.mjs +4 -4
  1290. package/tests/github_pick_up.mjs +2 -2
  1291. package/tests/github_push_merge_driver.mjs +1 -1
  1292. package/tests/go_live.mjs +3 -2
  1293. package/tests/goal_category.mjs +1 -1
  1294. package/tests/goal_cli.mjs +2 -2
  1295. package/tests/goal_create_spec_entry.mjs +1 -1
  1296. package/tests/goal_invite_consent.mjs +3 -1
  1297. package/tests/goal_move.mjs +1 -1
  1298. package/tests/goal_working_area.mjs +1 -1
  1299. package/tests/government_agent_asks.mjs +7 -7
  1300. package/tests/government_board_room_copy.mjs +6 -1
  1301. package/tests/government_board_view.mjs +39 -0
  1302. package/tests/government_board_vote_ui.mjs +39 -1
  1303. package/tests/government_config.mjs +2 -2
  1304. package/tests/government_live_proof_shape.mjs +1 -1
  1305. package/tests/government_protected_surfaces.mjs +54 -53
  1306. package/tests/government_require_permission.mjs +9 -1
  1307. package/tests/government_vanilla_boot.mjs +1 -1
  1308. package/tests/government_vocabulary.mjs +2 -2
  1309. package/tests/government_walk.mjs +2 -2
  1310. package/tests/grade_body_limit.mjs +6 -4
  1311. package/tests/grade_correlation_audit.mjs +3 -3
  1312. package/tests/grade_diff_hash.mjs +1 -1
  1313. package/tests/grade_engine_replay.mjs +2 -2
  1314. package/tests/grade_server_authoritative.mjs +1 -1
  1315. package/tests/grade_unavailable_display.mjs +1 -1
  1316. package/tests/grader.mjs +8 -24
  1317. package/tests/grader_generated_provenance.mjs +14 -14
  1318. package/tests/grader_no_artifact.mjs +1 -1
  1319. package/tests/grader_prompt_fencing.mjs +1 -1
  1320. package/tests/grader_quality_window_overflow.mjs +1 -1
  1321. package/tests/grader_reader_lens.mjs +3 -3
  1322. package/tests/grader_regrade_delta.mjs +1 -1
  1323. package/tests/grader_unbacked_score.mjs +2 -2
  1324. package/tests/hall_acclaim_vote_control.mjs +113 -0
  1325. package/tests/hall_asset_cache.mjs +127 -0
  1326. package/tests/hall_audit.mjs +63 -0
  1327. package/tests/hall_board_world.mjs +20 -0
  1328. package/tests/hall_city_card_words.mjs +61 -0
  1329. package/tests/hall_client_request_shape.mjs +5 -1
  1330. package/tests/hall_home_ships_bounded.mjs +160 -0
  1331. package/tests/hall_landing_boot.mjs +15 -2
  1332. package/tests/hall_nav.mjs +33 -0
  1333. package/tests/hall_onboarding_bongos_setup.mjs +1 -1
  1334. package/tests/hall_oversight_world.mjs +44 -4
  1335. package/tests/hall_palette.mjs +12 -9
  1336. package/tests/hall_preview_security.mjs +1 -1
  1337. package/tests/hall_profile_world.mjs +17 -0
  1338. package/tests/hall_reading_world.mjs +16 -1
  1339. package/tests/hall_roster_world.mjs +2 -1
  1340. package/tests/hall_studio_world.mjs +4 -1
  1341. package/tests/hall_work_history_id.mjs +39 -0
  1342. package/tests/held_tweak_reporting.mjs +4 -4
  1343. package/tests/helpers.mjs +3 -3
  1344. package/tests/home_bounded_reads.mjs +1 -1
  1345. package/tests/home_isolation_guard.mjs +1 -1
  1346. package/tests/hook_core_resolve.mjs +7 -7
  1347. package/tests/hook_user_agents.mjs +1 -1
  1348. package/tests/hooks_drain.mjs +2 -2
  1349. package/tests/host_topology_skips.mjs +1 -1
  1350. package/tests/howto_guide.mjs +1 -1
  1351. package/tests/howto_moments.mjs +3 -3
  1352. package/tests/hub_account_page.mjs +1 -1
  1353. package/tests/idea_capture_grades.mjs +2 -2
  1354. package/tests/idea_develop_spark.mjs +1 -1
  1355. package/tests/idea_filed_via.mjs +2 -2
  1356. package/tests/idea_ideate_full.mjs +1 -1
  1357. package/tests/idea_spark_mark.mjs +1 -1
  1358. package/tests/idea_spark_queue.mjs +1 -1
  1359. package/tests/idea_triage.mjs +1 -1
  1360. package/tests/idea_triage_grade.mjs +3 -3
  1361. package/tests/idea_vote_permission.mjs +113 -0
  1362. package/tests/idea_votes_fold_db.mjs +123 -0
  1363. package/tests/infra_exec_paths.mjs +12 -12
  1364. package/tests/init.mjs +2 -2
  1365. package/tests/instance_db_migrated_on_code_move.mjs +5 -5
  1366. package/tests/instance_feedback.mjs +9 -9
  1367. package/tests/instance_mismatch_guard.mjs +2 -2
  1368. package/tests/integration_parked_ratchet.mjs +24 -2
  1369. package/tests/intent_retry.mjs +1 -1
  1370. package/tests/interaction_posture.mjs +3 -3
  1371. package/tests/invite_expiry_db.mjs +1 -1
  1372. package/tests/joinability_invite_only.mjs +1 -1
  1373. package/tests/karma_vote_lists.mjs +270 -0
  1374. package/tests/key-card.mjs +2 -2
  1375. package/tests/key-status.mjs +2 -2
  1376. package/tests/knip_ratchet_ambient.mjs +2 -2
  1377. package/tests/known_failing_ratchet.mjs +1 -1
  1378. package/tests/land_watch.mjs +2 -2
  1379. package/tests/landing_legal_pages.mjs +1 -1
  1380. package/tests/landing_page.mjs +2 -2
  1381. package/tests/leaderboard_roles.mjs +4 -1
  1382. package/tests/leak_scan_allowlist.mjs +8 -8
  1383. package/tests/leak_scan_fail_closed.mjs +1 -1
  1384. package/tests/lib_sh_resolution.mjs +9 -9
  1385. package/tests/lifecycle-card.mjs +7 -7
  1386. package/tests/linkify_check.mjs +2 -2
  1387. package/tests/linkify_refs.mjs +1 -1
  1388. package/tests/llm-cache-route.mjs +1 -1
  1389. package/tests/local_preview.mjs +2 -2
  1390. package/tests/main_audit.mjs +3 -3
  1391. package/tests/main_audit_attestation.mjs +1 -1
  1392. package/tests/main_audit_db_roster.mjs +2 -2
  1393. package/tests/main_worktree_busy_reason.mjs +3 -3
  1394. package/tests/markdown_line_endings.mjs +2 -2
  1395. package/tests/me_streak_leaderboard_queries.mjs +193 -0
  1396. package/tests/membership_kind_lockstep.mjs +1 -1
  1397. package/tests/memory_isolation.mjs +16 -8
  1398. package/tests/memory_map.mjs +2 -2
  1399. package/tests/memory_pull.mjs +33 -25
  1400. package/tests/merge_driver_register.mjs +3 -3
  1401. package/tests/migration_allocation.mjs +2 -2
  1402. package/tests/migration_namespace.mjs +1 -1
  1403. package/tests/migrations_forward_safe.mjs +1 -1
  1404. package/tests/mingle.mjs +1 -1
  1405. package/tests/mirror_lineage_fulltree.mjs +3 -3
  1406. package/tests/mirror_lineage_proof.mjs +2 -2
  1407. package/tests/mirror_redact.mjs +4 -4
  1408. package/tests/missing_dep_classify.mjs +3 -3
  1409. package/tests/module-scope-map.mjs +22 -22
  1410. package/tests/module_api_lazy.mjs +1 -1
  1411. package/tests/module_assess_docs.mjs +2 -2
  1412. package/tests/module_assess_installs.mjs +3 -3
  1413. package/tests/module_assess_price_parity.mjs +5 -5
  1414. package/tests/module_assess_score.mjs +5 -5
  1415. package/tests/module_assess_security.mjs +4 -4
  1416. package/tests/module_assess_tests.mjs +3 -3
  1417. package/tests/module_assessments_migration.mjs +1 -1
  1418. package/tests/module_catalog.mjs +2 -2
  1419. package/tests/module_cli.mjs +3 -3
  1420. package/tests/module_entitlements.mjs +1 -1
  1421. package/tests/module_error_counts.mjs +1 -1
  1422. package/tests/module_install.mjs +4 -4
  1423. package/tests/module_loader.mjs +3 -1
  1424. package/tests/module_owned_tests.mjs +1 -1
  1425. package/tests/module_release_channels.mjs +1 -1
  1426. package/tests/module_store_howto.mjs +3 -3
  1427. package/tests/module_store_listing.mjs +139 -2
  1428. package/tests/module_store_publish.mjs +4 -4
  1429. package/tests/module_store_publish_route.mjs +1 -1
  1430. package/tests/module_store_reassess.mjs +1 -1
  1431. package/tests/module_store_registry_migration.mjs +1 -1
  1432. package/tests/module_test_runner.mjs +3 -3
  1433. package/tests/module_update.mjs +4 -4
  1434. package/tests/module_upgrade_updates.mjs +1 -1
  1435. package/tests/move_escalation.mjs +2 -2
  1436. package/tests/nav_permission_atoms.mjs +3 -2
  1437. package/tests/needs_rebase.mjs +7 -3
  1438. package/tests/newcomer_floor.mjs +1 -1
  1439. package/tests/next_number.mjs +1 -1
  1440. package/tests/no_artifact_escalation.mjs +3 -3
  1441. package/tests/npm_release_where.mjs +1 -1
  1442. package/tests/oauth_secret.mjs +2 -2
  1443. package/tests/onboard.mjs +6 -6
  1444. package/tests/onboarding_gate.mjs +2 -2
  1445. package/tests/opt_in_skill_modules.mjs +3 -3
  1446. package/tests/own_scope_guard.mjs +1 -1
  1447. package/tests/own_session_revoke.mjs +4 -1
  1448. package/tests/package_core.mjs +10 -11
  1449. package/tests/page_inventory.mjs +5 -5
  1450. package/tests/page_reader.mjs +7 -7
  1451. package/tests/page_tweak_hold.mjs +6 -6
  1452. package/tests/parallel-load.mjs +1 -1
  1453. package/tests/paste_token_api_base.mjs +1 -1
  1454. package/tests/paste_token_session_store.mjs +2 -2
  1455. package/tests/pending_invite_purge_db.mjs +1 -1
  1456. package/tests/permission_path.mjs +1 -1
  1457. package/tests/pin_replay.mjs +1 -1
  1458. package/tests/pin_write_key.mjs +7 -7
  1459. package/tests/plain_cards.mjs +15 -15
  1460. package/tests/pr_assign.mjs +1 -1
  1461. package/tests/pre_push_hook.mjs +3 -3
  1462. package/tests/preflight_checks.mjs +2 -2
  1463. package/tests/prelaunch_gate.mjs +1 -1
  1464. package/tests/privacy_matrix.mjs +1 -1
  1465. package/tests/probe_cache.mjs +6 -6
  1466. package/tests/profile_connections_ui.mjs +4 -3
  1467. package/tests/profile_fields.mjs +11 -1
  1468. package/tests/profile_privacy_owner_view.mjs +1 -1
  1469. package/tests/profile_role_headline.mjs +10 -9
  1470. package/tests/project_admin_console_model.mjs +1 -1
  1471. package/tests/projects_hub.mjs +1 -1
  1472. package/tests/projects_hub_cloud_hop.mjs +1 -1
  1473. package/tests/promote_goal_id.mjs +6 -6
  1474. package/tests/promotion_sweep.mjs +1 -1
  1475. package/tests/provision.mjs +24 -24
  1476. package/tests/provision_account_identity.mjs +2 -2
  1477. package/tests/provision_byo_host.mjs +1 -1
  1478. package/tests/provision_caddy_wiring.mjs +2 -2
  1479. package/tests/provision_disconnect.mjs +2 -2
  1480. package/tests/provision_dns_first.mjs +1 -1
  1481. package/tests/provision_render.mjs +9 -9
  1482. package/tests/provision_repo_private.mjs +3 -3
  1483. package/tests/provision_resource_caps.mjs +5 -5
  1484. package/tests/provision_restart.mjs +3 -3
  1485. package/tests/provision_settings_apply.mjs +7 -7
  1486. package/tests/provision_teardown_address.mjs +2 -2
  1487. package/tests/provisioning_capacity.mjs +5 -5
  1488. package/tests/provisioning_credential_preflight.mjs +1 -1
  1489. package/tests/provisioning_disconnect.mjs +1 -1
  1490. package/tests/provisioning_error_note_scope.mjs +4 -4
  1491. package/tests/provisioning_paid_shape_gate.mjs +2 -2
  1492. package/tests/provisioning_planet_physics.mjs +16 -0
  1493. package/tests/provisioning_runner_drift_notice.mjs +2 -2
  1494. package/tests/provisioning_settings_env.mjs +1 -1
  1495. package/tests/pruned_lockfile_integrity.mjs +1 -1
  1496. package/tests/public_mirror_export.mjs +1 -1
  1497. package/tests/publish_integration_gate.mjs +2 -2
  1498. package/tests/publish_manifest.mjs +6 -6
  1499. package/tests/publish_watch.mjs +1 -1
  1500. package/tests/push_path_brief.mjs +2 -2
  1501. package/tests/raise.mjs +248 -0
  1502. package/tests/rank_roles_audit.mjs +1 -1
  1503. package/tests/rank_tier_single_source.mjs +2 -2
  1504. package/tests/rate_limit_public.mjs +1 -1
  1505. package/tests/read_default_meter.mjs +2 -2
  1506. package/tests/read_session_export.mjs +1 -1
  1507. package/tests/rebase_gate_set_aside.mjs +1 -1
  1508. package/tests/recall_cli.mjs +1 -1
  1509. package/tests/recall_corpus_health.mjs +3 -2
  1510. package/tests/recall_hints.mjs +1 -1
  1511. package/tests/recruiter_sliver_boundary.mjs +1 -1
  1512. package/tests/redteam_patrol.mjs +2 -2
  1513. package/tests/regrade_actual_minutes.mjs +2 -2
  1514. package/tests/regrade_eligibility.mjs +2 -2
  1515. package/tests/release_core.mjs +2 -2
  1516. package/tests/release_notes.mjs +4 -4
  1517. package/tests/rename_history_restraint.mjs +3 -3
  1518. package/tests/rename_ledger_prose.mjs +6 -6
  1519. package/tests/render_api.mjs +1 -1
  1520. package/tests/render_check.mjs +4 -4
  1521. package/tests/render_deploy.mjs +1 -1
  1522. package/tests/repo_info_binding.mjs +1 -1
  1523. package/tests/repo_map.mjs +5 -5
  1524. package/tests/reward_mode_cost_plus_only.mjs +7 -3
  1525. package/tests/reward_mode_surfacing.mjs +1 -1
  1526. package/tests/role_responsibilities.mjs +1 -1
  1527. package/tests/route_permission_check.mjs +1 -1
  1528. package/tests/route_shadow_guard.mjs +1 -1
  1529. package/tests/route_validation.mjs +1 -1
  1530. package/tests/routine_capture_kind.mjs +24 -13
  1531. package/tests/routine_schedule.mjs +51 -9
  1532. package/tests/run_routine.mjs +5 -5
  1533. package/tests/run_routine_two_root.mjs +5 -5
  1534. package/tests/runner_drift.mjs +17 -17
  1535. package/tests/sandbox_stage.mjs +5 -5
  1536. package/tests/scope_map_guard.mjs +7 -7
  1537. package/tests/scouting_owner_access_and_reach.mjs +1 -1
  1538. package/tests/scripts_gds_forwarders.mjs +224 -0
  1539. package/tests/scrubber_corpus.mjs +2 -2
  1540. package/tests/seam_wiring_guard.mjs +1 -1
  1541. package/tests/search_ingest.mjs +2 -2
  1542. package/tests/search_ingest_db.mjs +1 -1
  1543. package/tests/search_ingest_nul.mjs +6 -6
  1544. package/tests/seed_verify_criteria.mjs +3 -3
  1545. package/tests/sequence.mjs +3 -3
  1546. package/tests/served_paths_shipped.mjs +3 -3
  1547. package/tests/session_506_regression.mjs +1 -1
  1548. package/tests/session_accessibility.mjs +1 -1
  1549. package/tests/session_caps.mjs +1 -1
  1550. package/tests/session_cost.mjs +1 -1
  1551. package/tests/session_digest.mjs +2 -2
  1552. package/tests/session_eval.mjs +6 -6
  1553. package/tests/session_index.mjs +1 -1
  1554. package/tests/session_records.mjs +4 -4
  1555. package/tests/session_rename_fallback.mjs +2 -2
  1556. package/tests/session_reward_on_land.mjs +7 -149
  1557. package/tests/session_reward_on_land_db.mjs +191 -0
  1558. package/tests/session_reward_reconcile.mjs +6 -88
  1559. package/tests/session_reward_reconcile_db.mjs +132 -0
  1560. package/tests/session_transcript.mjs +1 -1
  1561. package/tests/sessions_kit_pager.mjs +2 -1
  1562. package/tests/setup_device_flow_fallback.mjs +2 -2
  1563. package/tests/setup_smoke.mjs +12 -5
  1564. package/tests/setup_status_facts.mjs +54 -12
  1565. package/tests/ship_autolinkify.mjs +2 -2
  1566. package/tests/ship_automerge_injection.mjs +1 -1
  1567. package/tests/ship_base_flag.mjs +1 -1
  1568. package/tests/ship_broadcast_routing.mjs +1 -1
  1569. package/tests/ship_broadcast_server.mjs +2 -2
  1570. package/tests/ship_builder_model.mjs +1 -1
  1571. package/tests/ship_cannot_lie.mjs +9 -9
  1572. package/tests/ship_card.mjs +2 -2
  1573. package/tests/ship_ci_deploy.mjs +7 -7
  1574. package/tests/ship_error_shape.mjs +1 -1
  1575. package/tests/ship_land_ci_not_started.mjs +3 -3
  1576. package/tests/ship_land_conflict.mjs +3 -3
  1577. package/tests/ship_land_proof.mjs +3 -3
  1578. package/tests/ship_land_red_pr.mjs +5 -5
  1579. package/tests/ship_merge_gate.mjs +14 -14
  1580. package/tests/ship_mode.mjs +1 -1
  1581. package/tests/ship_mode_first_ship.mjs +4 -4
  1582. package/tests/ship_mode_hands_off.mjs +8 -8
  1583. package/tests/ship_post_land_verify.mjs +1 -1
  1584. package/tests/ship_preflight.mjs +19 -19
  1585. package/tests/ship_premerge.mjs +1 -1
  1586. package/tests/ship_publish_error.mjs +2 -2
  1587. package/tests/ship_push_diagnosis.mjs +1 -1
  1588. package/tests/ship_regen_copy_inventory.mjs +3 -3
  1589. package/tests/ship_resume.mjs +4 -4
  1590. package/tests/ship_smoke_gate.mjs +1 -1
  1591. package/tests/ship_upload_skip.mjs +1 -1
  1592. package/tests/ship_upstream_deletion.mjs +1 -1
  1593. package/tests/ship_vendored_instance.mjs +8 -8
  1594. package/tests/ship_visual_regrade.mjs +3 -3
  1595. package/tests/ship_zero_commit.mjs +1 -1
  1596. package/tests/skill_docs_unavailable_regrade.mjs +3 -3
  1597. package/tests/skill_friction_kind.mjs +1 -1
  1598. package/tests/skill_grade_recover.mjs +1 -1
  1599. package/tests/skill_grader_health.mjs +1 -1
  1600. package/tests/skill_lint.mjs +1 -1
  1601. package/tests/skill_menu_ruling.mjs +1 -1
  1602. package/tests/skill_preflight.mjs +7 -7
  1603. package/tests/skip_is_not_pass.mjs +22 -1
  1604. package/tests/smoke_dependencies_witness.mjs +2 -2
  1605. package/tests/smoke_preflight.mjs +1 -1
  1606. package/tests/smoke_target.mjs +2 -2
  1607. package/tests/smoke_write_contract.mjs +2 -2
  1608. package/tests/sound_player.mjs +8 -8
  1609. package/tests/source_text_test_ratchet.mjs +97 -0
  1610. package/tests/speciality_corpus_scope.mjs +1 -1
  1611. package/tests/speciality_session_skills.mjs +1 -1
  1612. package/tests/sso_checkin_legacy_field_gone.mjs +4 -2
  1613. package/tests/stale_timer.mjs +3 -3
  1614. package/tests/stale_worktrees.mjs +1 -1
  1615. package/tests/start_env_guard.mjs +1 -1
  1616. package/tests/start_goal_first.mjs +3 -3
  1617. package/tests/start_inbox_count.mjs +1 -1
  1618. package/tests/start_rebase_warning.mjs +1 -1
  1619. package/tests/status_default_version.mjs +3 -3
  1620. package/tests/status_mirror_sync.mjs +1 -1
  1621. package/tests/status_page_no_dead_uptime.mjs +80 -0
  1622. package/tests/stop_refcheck.mjs +1 -1
  1623. package/tests/strand_watch.mjs +1 -1
  1624. package/tests/stranded_rows.mjs +1 -1
  1625. package/tests/stuck_detector.mjs +14 -14
  1626. package/tests/sweep_app_account.mjs +3 -3
  1627. package/tests/task_cli.mjs +2 -2
  1628. package/tests/task_detail_ui.mjs +11 -1
  1629. package/tests/task_discipline_required.mjs +2 -2
  1630. package/tests/task_list_paging.mjs +1 -1
  1631. package/tests/task_visual_slots.mjs +2 -2
  1632. package/tests/terms_acceptance.mjs +1 -1
  1633. package/tests/terms_grandfather_db.mjs +1 -1
  1634. package/tests/test_path_guard.mjs +1 -1
  1635. package/tests/triage_development.mjs +1 -1
  1636. package/tests/tweak_batch_apply.mjs +2 -2
  1637. package/tests/tweak_land_heal.mjs +3 -3
  1638. package/tests/tweak_unattended.mjs +3 -3
  1639. package/tests/ui_design_skills.mjs +2 -2
  1640. package/tests/unit_report_status.mjs +2 -2
  1641. package/tests/unit_runner_serial.mjs +2 -2
  1642. package/tests/unit_runner_teardown_abort.mjs +1 -1
  1643. package/tests/update_channel.mjs +2 -2
  1644. package/tests/update_channel_db.mjs +4 -4
  1645. package/tests/update_subscription_engine.mjs +26 -26
  1646. package/tests/update_sweep_home.mjs +14 -14
  1647. package/tests/upgrade.mjs +11 -11
  1648. package/tests/upgrade_artist_gate.mjs +4 -4
  1649. package/tests/upgrade_commit_identity.mjs +2 -2
  1650. package/tests/upgrade_migrate.mjs +7 -7
  1651. package/tests/upgrade_operator.mjs +2 -2
  1652. package/tests/upgrade_outcome.mjs +2 -2
  1653. package/tests/upgrade_persist_pin.mjs +5 -5
  1654. package/tests/upkeep_home.mjs +1 -1
  1655. package/tests/version_close.mjs +2 -2
  1656. package/tests/version_close_cli.mjs +2 -2
  1657. package/tests/version_close_route.mjs +1 -1
  1658. package/tests/version_literals.mjs +23 -23
  1659. package/tests/visual_review.mjs +5 -5
  1660. package/tests/wedge_remedy.mjs +5 -5
  1661. package/tests/welcome_boot.mjs +116 -0
  1662. package/tests/welcome_boot_browser.mjs +271 -0
  1663. package/tests/wizard_born_first_board.mjs +3 -3
  1664. package/tests/wizard_demo.mjs +1 -1
  1665. package/tests/wizard_one_page.mjs +4 -3
  1666. package/tests/wizard_physics.mjs +3 -1
  1667. package/tests/wizard_physics_more.mjs +42 -3
  1668. package/tests/work_title_wrap.mjs +1 -1
  1669. package/tests/workflow_exec_paths.mjs +6 -6
  1670. package/tests/worktree_claim_guard.mjs +1 -1
  1671. package/tests/worktree_helper.mjs +2 -2
  1672. package/tests/write_validation_gaps.mjs +3 -3
  1673. package/scripts/gds/api.sh +0 -6
  1674. package/scripts/gds/artifact-staleness.js +0 -267
  1675. package/scripts/gds/audit-exports.js +0 -128
  1676. package/scripts/gds/classify-discipline.js +0 -153
  1677. package/scripts/gds/codemod-rename-src-gds.js +0 -145
  1678. package/scripts/gds/coreB-carve-proof.sh +0 -725
  1679. package/scripts/gds/goal-names.js +0 -102
  1680. package/scripts/gds/rename-goals.js +0 -109
  1681. package/scripts/gds/resolve-skill-model.js +0 -57
  1682. package/scripts/gds/security-baseline-check.sh +0 -180
  1683. package/scripts/gds/seed-adopt-tasks.js +0 -75
  1684. package/scripts/gds/seed-api-contract-goal-tasks.js +0 -141
  1685. package/scripts/gds/seed-board-room-tasks.js +0 -196
  1686. package/scripts/gds/seed-bongos-app-tasks.js +0 -294
  1687. package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +0 -81
  1688. package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +0 -100
  1689. package/scripts/gds/seed-bongos-goal-hierarchy-tasks.js +0 -307
  1690. package/scripts/gds/seed-bongos-module-system-tasks.js +0 -346
  1691. package/scripts/gds/seed-bongos-tasks.js +0 -214
  1692. package/scripts/gds/seed-bongos-v1-seo-tasks.js +0 -104
  1693. package/scripts/gds/seed-bv1-community-tasks.js +0 -131
  1694. package/scripts/gds/seed-bv1-privacy-invites-tasks.js +0 -133
  1695. package/scripts/gds/seed-bv1-profile-page-tasks.js +0 -161
  1696. package/scripts/gds/seed-bv1-r01-delta-tasks.js +0 -154
  1697. package/scripts/gds/seed-bv2-tweak-mode-tasks.js +0 -277
  1698. package/scripts/gds/seed-gds-v4-tasks.js +0 -624
  1699. package/scripts/gds/seed-governance-tasks.js +0 -340
  1700. package/scripts/gds/seed-medusa-tasks.js +0 -440
  1701. package/scripts/gds/seed-module-upstreaming.js +0 -219
  1702. package/scripts/gds/seed-productization-tasks.js +0 -235
  1703. package/scripts/gds/seed-project-admin-console-tasks.js +0 -88
  1704. package/scripts/gds/seed-provisioning-tasks.js +0 -83
  1705. package/scripts/gds/seed-strict-versioning-tasks.js +0 -275
  1706. package/scripts/gds/seed-v2-world-tasks.js +0 -283
  1707. package/scripts/gds/spike-task-map.js +0 -899
  1708. package/scripts/migrate_cost_ledger.sh +0 -178
  1709. package/scripts/status-probe.mjs +0 -213
  1710. package/src/bongos/uptime-poller.js +0 -93
  1711. package/tests/artifact_staleness.mjs +0 -207
  1712. package/tests/goal_names.mjs +0 -120
  1713. package/tests/government_fold_bench.mjs +0 -50
  1714. package/tests/spike_task_map.mjs +0 -422
  1715. package/tests/status-probe.mjs +0 -89
  1716. /package/{scripts/gds → modules/raise}/CLAUDE.md +0 -0
  1717. /package/scripts/{gds → bongos}/cloudbongos-token-isolation.conf +0 -0
  1718. /package/scripts/{gds → bongos}/discipline-modes.json +0 -0
  1719. /package/scripts/{gds → bongos}/retired-core-skills.json +0 -0
@@ -17,7 +17,7 @@ You are recovering a task whose ship parked at `completed` because of its grade.
17
17
  Reads the persisted grade, branches on `panel_outcome` FIRST, then walks exactly one of three recovery branches. The re-grade command every branch eventually reaches is:
18
18
 
19
19
  ```bash
20
- node scripts/gds/ship.js <id> --regrade
20
+ node scripts/bongos/ship.js <id> --regrade
21
21
  ```
22
22
 
23
23
  `--regrade` re-runs ONLY the grade step (no smoke/scanner re-run), reads **committed history, not the working tree**, applies only to a task at `completed`, is gated to the task's most-recent claim holder or an Archon, and has no attempt cap.
@@ -25,11 +25,11 @@ node scripts/gds/ship.js <id> --regrade
25
25
  ## Step 1 — Read the grade
26
26
 
27
27
  ```bash
28
- node scripts/gds/api.js GET "/api/bongos/tasks/<id>?include=grade,last_claim"
28
+ node scripts/bongos/api.js GET "/api/bongos/tasks/<id>?include=grade,last_claim"
29
29
  ```
30
30
 
31
31
  - Task not at `completed` → stop; there is nothing to recover. `confirmed`/`shipped` means the grade passed (a `confirmed` strand lands via the ~5-min reconciler; `/merge-mode` is the rare manual fallback). `active` means ship first.
32
- - **A page tweak whose grade PASSED** (`task.source` is `page-tweak`, `grade.passed` is `true`) → stop; it is **waiting for the artist**, not a failed grade (ADR 0341 D7). Its pass is held at `completed` on purpose until the artist approves the applied page. Do not re-grade it and do not ask for an override. If its branch never published, a plain `node scripts/gds/ship.js <id>` re-publishes it without re-grading.
32
+ - **A page tweak whose grade PASSED** (`task.source` is `page-tweak`, `grade.passed` is `true`) → stop; it is **waiting for the artist**, not a failed grade (ADR 0341 D7). Its pass is held at `completed` on purpose until the artist approves the applied page. Do not re-grade it and do not ask for an override. If its branch never published, a plain `node scripts/bongos/ship.js <id>` re-publishes it without re-grading.
33
33
  - `grade: null` → the ship never reached the grade step; re-run `/builder-ship`, not `--regrade`.
34
34
  - Otherwise diagnose from the grade row: `signals.panel_outcome`, `signals.server_guard`, `passed`, `rubric_scores`, `issues[]`.
35
35
 
@@ -41,20 +41,20 @@ The panel could not run (worker infra outage or a pre-spawn bypass). This is **n
41
41
 
42
42
  1. Do NOT edit code. There is nothing to fix.
43
43
  2. Check the grader can run now: the panel spawns `claude -p` subprocesses locally, so confirm the CLI is present and authenticated, and the instance API is reachable (`signals.grader_unavailable_reason` usually names the leg that died).
44
- 3. Re-grade: `node scripts/gds/ship.js <id> --regrade`.
44
+ 3. Re-grade: `node scripts/bongos/ship.js <id> --regrade`.
45
45
 
46
46
  ### Branch B — fabricated / server-shape fail: the guard tripped or an axis was forged by an error
47
47
 
48
48
  Three known sub-shapes, all recognizable because the "fail" carries **no substantive findings**. First make sure it really carries none: read the top-level `issues[]` — the API has lifted the stored findings there since task 1003488 (2026-09-02). Before that, a grade READ BACK showed no `issues` at all even when the panel had filed some, which is how task 1002721's real (and wrong) Quality blocker was taken for an empty fail.
49
49
 
50
- - **Server-guard trip** (`signals.server_guard.tripped` non-empty, e.g. `implausible_pass`): the server downgraded a client-asserted pass it found implausible — historically this guard has fired on genuinely clean, unanimous zero-issue passes. Explain the downgrade honestly, then re-grade: `node scripts/gds/ship.js <id> --regrade`.
50
+ - **Server-guard trip** (`signals.server_guard.tripped` non-empty, e.g. `implausible_pass`): the server downgraded a client-asserted pass it found implausible — historically this guard has fired on genuinely clean, unanimous zero-issue passes. Explain the downgrade honestly, then re-grade: `node scripts/bongos/ship.js <id> --regrade`.
51
51
  - **An unbacked low score** (`signals.unbacked_scores` lists it; the card reads `UNBACKED LOW SCORE`): a reviewer scored below threshold without a major/blocker finding, so the severity gate downgraded it to manual-confirm instead of a hard fail (task 1002903). There is nothing to fix. Re-grade once; if it repeats on a diff you can defend, take the override path below with your evidence.
52
52
  - **A FAIL scored around 4.5/10 with zero issues and a null/zero axis** (the errored-worker class): a worker error was forwarded as a real axis score. Same response — re-grade; the panel rerun replaces the forged shape with a real verdict. Since task 1003318 a Quality worker that never ran (a `Prompt is too long` window overflow, `error: PROMPT_TOO_LONG`) no longer forges a 0: the server records `signals.cq_lens_unavailable` with a json-null axis and the card reads `QUALITY LENS UNAVAILABLE` — re-grade or manual-confirm; a 4.5 with a 0 axis now only comes from a server predating it.
53
53
 
54
54
  If an honest re-grade re-trips the guard on a diff you can defend, use the **auditable override path** — file an override-request with a real rationale (≥20 chars; only the task's most-recent claim holder or an Archon may file; an Archon then decides it):
55
55
 
56
56
  ```bash
57
- node scripts/gds/api.js POST /api/bongos/tasks/<id>/override-request --body '{"rationale":"<why this grade is wrong, specifically>"}'
57
+ node scripts/bongos/api.js POST /api/bongos/tasks/<id>/override-request --body '{"rationale":"<why this grade is wrong, specifically>"}'
58
58
  ```
59
59
 
60
60
  **Never volunteer the raw Archon confirm curl.** The override-request is the sanctioned exit precisely because it records who asked, why, and who decided — the raw confirm records none of that.
@@ -69,7 +69,7 @@ The panel ran and rejected the work. Recover by fixing, not by re-rolling:
69
69
  4. Commit on the claim branch — the grader reads committed history — then re-grade, saying how each finding was answered:
70
70
 
71
71
  ```bash
72
- node scripts/gds/ship.js <id> --regrade --response-file response.md
72
+ node scripts/bongos/ship.js <id> --regrade --response-file response.md
73
73
  ```
74
74
 
75
75
  **`--response` is how you answer a finding; `--notes` is not** (task 1003702). The panel is given the task, your value summary, the changed files and the diff — it never reads ship notes, on a re-grade or on the first ship. `--response` rides to the panel fenced as the prior round's answer, so an already-answered finding cannot re-veto on re-wording alone. Passing `--notes` used to be accepted and silently dropped; it is now refused with this same guidance. Evidence itself still belongs in the **diff** — a committed test is what makes a fix real (step 2), and the panel can read every changed file.
@@ -88,5 +88,5 @@ A grade block naming protected surfaces above your rank is an authorization wall
88
88
  ## Files this skill touches
89
89
 
90
90
  - Reads: `GET /api/bongos/tasks/:id?include=grade,last_claim` (the persisted grade row + regrade eligibility).
91
- - Runs: `node scripts/gds/ship.js <id> --regrade` (the grade step only).
91
+ - Runs: `node scripts/bongos/ship.js <id> --regrade` (the grade step only).
92
92
  - Writes (Branch B escalation only): `POST /api/bongos/tasks/:id/override-request`.
@@ -32,16 +32,16 @@ You read live surfaces, compare against known baselines, and emit findings + exa
32
32
 
33
33
  A grader outage used to be recorded as a 0.0 "quality failure": one builder accumulated **21 zero-score rows** over a month before anyone noticed, and the public tile showed a phantom 5-day 0%-pass crater. Since the outage-as-zero fix, aggregates exclude outage rounds and bucket them as `n_unavailable` — so the streak is now directly readable.
34
34
 
35
- 1. Read the public trend: `node scripts/gds/api.js GET "/api/bongos/public/grades?days=30"` — scan `trend[]` for days where the average is 0 (or null) with passes 0 and n ≥ 2, and for any nonzero `n_unavailable` streak.
36
- 2. (Archon) Read the per-builder split: `node scripts/gds/api.js GET "/api/bongos/grades/by-builder?days=30"` — a single builder with pass_rate 0.000 or a large `n_unavailable` bucket is the 21×0.0 shape localized to one machine or one environment.
37
- 3. **Confirm outage vs rejection before alarming anyone.** For each task in a suspect window: `node scripts/gds/api.js GET "/api/bongos/tasks/<id>?include=grade"` — `signals.panel_outcome='unavailable'` (with `grader_unavailable_reason` and per-worker errors in `signals.workers`) is an outage, **not a quality rejection**; a real FAIL carries findings in `issues[]`.
35
+ 1. Read the public trend: `node scripts/bongos/api.js GET "/api/bongos/public/grades?days=30"` — scan `trend[]` for days where the average is 0 (or null) with passes 0 and n ≥ 2, and for any nonzero `n_unavailable` streak.
36
+ 2. (Archon) Read the per-builder split: `node scripts/bongos/api.js GET "/api/bongos/grades/by-builder?days=30"` — a single builder with pass_rate 0.000 or a large `n_unavailable` bucket is the 21×0.0 shape localized to one machine or one environment.
37
+ 3. **Confirm outage vs rejection before alarming anyone.** For each task in a suspect window: `node scripts/bongos/api.js GET "/api/bongos/tasks/<id>?include=grade"` — `signals.panel_outcome='unavailable'` (with `grader_unavailable_reason` and per-worker errors in `signals.workers`) is an outage, **not a quality rejection**; a real FAIL carries findings in `issues[]`.
38
38
  4. For every task parked at `completed` by a confirmed outage, emit the exact remediation line, one per task:
39
39
 
40
40
  ```bash
41
- node scripts/gds/ship.js <id> --regrade
41
+ node scripts/bongos/ship.js <id> --regrade
42
42
  ```
43
43
 
44
- 5. Check the local spawn leg: the panel spawns `claude -p` subprocesses, so verify the CLI is present and authenticated, and run `node scripts/gds/doctor.js` for the hooks/worktree leg.
44
+ 5. Check the local spawn leg: the panel spawns `claude -p` subprocesses, so verify the CLI is present and authenticated, and run `node scripts/bongos/doctor.js` for the hooks/worktree leg.
45
45
 
46
46
  #### 2 — Pass-rate drift
47
47
 
@@ -55,7 +55,7 @@ Baselines: the 14-agent evaluation window measured a **90.6%** pass rate, alread
55
55
  Benchmark: mean panel cost **$2.14** per grade, and ~90% of it is **fixed** re-exploration cost, independent of diff size. (Measured with Quality on the haiku tier; since task 1003318 Quality runs on claude-sonnet-5, so a mean sitting somewhat above $2.14 is the new normal until re-baselined — a rise alone is not an anomaly.) Read grader spend and divide by the grade count from axis 2's window:
56
56
 
57
57
  ```
58
- node scripts/gds/api.js GET "/api/bongos/public/cost-summary?source=grader&days=30" --quiet \
58
+ node scripts/bongos/api.js GET "/api/bongos/public/cost-summary?source=grader&days=30" --quiet \
59
59
  | node -e "let s='';process.stdin.on('data',d=>s+=d).on('end',()=>{const j=JSON.parse(s);
60
60
  if(j.applied_filters?.source!=='grader'){console.error('FILTER DROPPED — do not divide');process.exit(1)}
61
61
  console.log('grader 30d:', j.filtered_total_usd)})"
@@ -72,11 +72,11 @@ The evaluation found every grade ran on a generation-stale pin. Read the live pi
72
72
 
73
73
  ### Optional: `--probe` (live calibration, spends real money)
74
74
 
75
- With `--probe`, run the live panel calibration: `node scripts/gds/grade-smoke.js`. It grades known-good and known-bad fixtures against the real panel and reports miscalibration. **Costs ~$0.30–0.90 per run; Metic+ only.** Never run it implicitly — only when the user passed `--probe` or asked for a live calibration.
75
+ With `--probe`, run the live panel calibration: `node scripts/bongos/grade-smoke.js`. It grades known-good and known-bad fixtures against the real panel and reports miscalibration. **Costs ~$0.30–0.90 per run; Metic+ only.** Never run it implicitly — only when the user passed `--probe` or asked for a live calibration.
76
76
 
77
77
  ### Related: do the workers fail differently?
78
78
 
79
- Part A checks whether the grader is RUNNING well. Whether its four workers carry independent signal — or are four copies of one opinion — is a different question with its own read-only report: `node scripts/gds/grade-correlation-audit.js` (pairwise agreement + Cohen's kappa between workers, each worker's kappa against the owner's override and manual-confirm decisions, refused below a minimum sample; no model calls, Metic+ for the override read). Point the owner at it when the question is panel composition rather than health.
79
+ Part A checks whether the grader is RUNNING well. Whether its four workers carry independent signal — or are four copies of one opinion — is a different question with its own read-only report: `node scripts/bongos/grade-correlation-audit.js` (pairwise agreement + Cohen's kappa between workers, each worker's kappa against the owner's override and manual-confirm decisions, refused below a minimum sample; no model calls, Metic+ for the override read). Point the owner at it when the question is panel composition rather than health.
80
80
 
81
81
  ---
82
82
 
@@ -87,13 +87,13 @@ You are auditing the last week of grades for accountability gaps: work that ship
87
87
  ### The sweep window
88
88
 
89
89
  ```bash
90
- node scripts/gds/api.js GET "/api/bongos/public/recent-shipped?days=7"
90
+ node scripts/bongos/api.js GET "/api/bongos/public/recent-shipped?days=7"
91
91
  ```
92
92
 
93
93
  For each shipped task in the window, read its persisted grade:
94
94
 
95
95
  ```bash
96
- node scripts/gds/api.js GET "/api/bongos/tasks/<id>?include=grade"
96
+ node scripts/bongos/api.js GET "/api/bongos/tasks/<id>?include=grade"
97
97
  ```
98
98
 
99
99
  Bucket by grade shape: `passed`, failed, `signals.panel_outcome='unavailable'` (outage — no quality signal existed), or no grade row at all.
@@ -112,7 +112,7 @@ Note `task_grades.grader_kind` is **not** the discriminator: the server records
112
112
  For every shipped task whose grade **failed** (or is absent), the land needed an override. Cross-reference the ledger (Archon — `override_request.decide`):
113
113
 
114
114
  ```bash
115
- node scripts/gds/api.js GET "/api/bongos/override-requests?status=approved"
115
+ node scripts/bongos/api.js GET "/api/bongos/override-requests?status=approved"
116
116
  ```
117
117
 
118
118
  - Split **infra vs real** first: a fail that is actually `panel_outcome='unavailable'` (or the errored-worker zero-issue shape) is an outage artifact, not an overridden quality verdict — route those to the Leg 4 roll-up.
@@ -124,10 +124,10 @@ node scripts/gds/api.js GET "/api/bongos/override-requests?status=approved"
124
124
  A pass with `blocker`/`major` entries in `issues[]` shipped real findings that no process ever picks up (the evaluation counted 274 findings on passing ships with zero conversion paths). For each:
125
125
 
126
126
  - **Worker-attribution filter:** findings attributed to the advisory **Narc** are the known noise class — triage them by hand (read the finding, decide), never auto-trust them into the queue. Findings from the gating workers (Quality, Hacker, Efficiency) or the deterministic pre-passes are higher-confidence — queue them unless plainly stale.
127
- - **Queueing rule (idempotent):** first read the open inbox (`node scripts/gds/api.js GET /api/bongos/inbox`) and skip any finding already queued — the marker is the deterministic title prefix. Then:
127
+ - **Queueing rule (idempotent):** first read the open inbox (`node scripts/bongos/api.js GET /api/bongos/inbox`) and skip any finding already queued — the marker is the deterministic title prefix. Then:
128
128
 
129
129
  ```bash
130
- node scripts/gds/capture.js "[grade-audit] task <id>: <finding summary>" --kind bug
130
+ node scripts/bongos/capture.js "[grade-audit] task <id>: <finding summary>" --kind bug
131
131
  ```
132
132
 
133
133
  One idea per surviving finding, titled exactly `[grade-audit] task <id>: …` so a re-run of this audit files nothing twice. (The marker keeps the old command's name on purpose: rows already in the inbox carry it.)
@@ -169,6 +169,6 @@ A clean week is four one-liners.
169
169
  ## Files this skill touches
170
170
 
171
171
  - Reads: `GET /api/bongos/public/grades`, `GET /api/bongos/grades/by-builder` (Archon), `GET /api/bongos/public/cost-summary?source=grader` (the `filtered_total_usd` key), `GET /api/bongos/public/recent-shipped`, `GET /api/bongos/tasks/:id?include=grade`, `GET /api/bongos/override-requests?status=approved` (Archon), `GET /api/bongos/inbox`, `modules/grading/grader.js`, `modules/grading/grader-rubric.json`.
172
- - Runs (read-only): `node scripts/gds/doctor.js`; with `--probe` only: `node scripts/gds/grade-smoke.js`.
173
- - Writes: `idea_inbox` rows via `node scripts/gds/capture.js` (Part B's queued follow-ups only).
172
+ - Runs (read-only): `node scripts/bongos/doctor.js`; with `--probe` only: `node scripts/bongos/grade-smoke.js`.
173
+ - Writes: `idea_inbox` rows via `node scripts/bongos/capture.js` (Part B's queued follow-ups only).
174
174
  - Never calls: any confirm, status, grade, or regrade endpoint.
@@ -76,7 +76,7 @@ capture-time suggester (R08/R09/R11 surfaces) is where the fix belongs.
76
76
  ## What this skill does
77
77
 
78
78
  1. Lists open ideas via `GET /api/bongos/inbox`.
79
- 2. **Batches near-duplicate ideas** into one verdict per cluster (`node scripts/gds/triage.js`'s `clusterIdeas`), so a backlog of similar asks doesn't cost one decision each (task 1001465).
79
+ 2. **Batches near-duplicate ideas** into one verdict per cluster (`node scripts/bongos/triage.js`'s `clusterIdeas`), so a backlog of similar asks doesn't cost one decision each (task 1001465).
80
80
  3. **Develops what's left with a LEAN inline pass by default** — reasoning from context already in the session, no subagent spend — and escalates to a FEW targeted subagents only where repo grounding would actually flip the verdict (task 1001465; the old unconditional 12-subagent fan-out is now opt-in, task 930's original mechanism).
81
81
  4. For each, prompts the user with: **promote** (create a task and link it), **discard** (closed, no action), or **merge** (this duplicates idea N, mark merged into N).
82
82
  5. Updates each idea via `PATCH /api/bongos/inbox/:id` with the verdict.
@@ -86,12 +86,12 @@ capture-time suggester (R08/R09/R11 surfaces) is where the fix belongs.
86
86
  **Step 1 — fetch the open inbox.**
87
87
 
88
88
  ```
89
- node scripts/gds/api.js GET /api/bongos/inbox
89
+ node scripts/bongos/api.js GET /api/bongos/inbox
90
90
  ```
91
91
 
92
92
  (`api.js` is the cross-platform Bongos API helper — it signs the request with your
93
93
  session token and runs on Windows/macOS/Linux, replacing the old `python3`/`curl`
94
- block. For a human at a terminal, `node scripts/gds/triage.js` runs the whole
94
+ block. For a human at a terminal, `node scripts/bongos/triage.js` runs the whole
95
95
  walk interactively instead.)
96
96
 
97
97
  If `open_count` is 0, print "inbox empty — nothing to triage today" and exit.
@@ -110,7 +110,7 @@ even needs, so it is the first thing to read, not a detail:
110
110
  Walk **Full Ideas first, best-formed first (highest completeness), then quick
111
111
  ideas and sparks newest-first.** Two runs, not one list sorted by score: a single
112
112
  score-sorted list puts every unscored idea after every scored one, and in a long
113
- inbox nobody reaches them. `node scripts/gds/triage.js` already walks in exactly
113
+ inbox nobody reaches them. `node scripts/bongos/triage.js` already walks in exactly
114
114
  this order and prints the grade on each card, and `render-ideas.js` renders the
115
115
  same two sections — so the interactive walk, the generated file and this skill all
116
116
  show the same idea the same way.
@@ -119,7 +119,7 @@ show the same idea the same way.
119
119
 
120
120
  **Step 1.5a — batch near-duplicate ideas BEFORE developing anything (task 1001465).**
121
121
 
122
- Run `clusterIdeas` (`scripts/gds/triage.js` — pure, no I/O): it groups open quick ideas (not Full Ideas, not sparks) that share a `kind` and a high title/body word overlap. For each cluster it returns, offer the user ONE decision covering the whole group instead of walking each member — this is the actual fix for "triage costs a ton of credits" (idea 377): a backlog of near-identical asks used to cost one full development + verdict PER idea, and now costs one:
122
+ Run `clusterIdeas` (`scripts/bongos/triage.js` — pure, no I/O): it groups open quick ideas (not Full Ideas, not sparks) that share a `kind` and a high title/body word overlap. For each cluster it returns, offer the user ONE decision covering the whole group instead of walking each member — this is the actual fix for "triage costs a ton of credits" (idea 377): a backlog of near-identical asks used to cost one full development + verdict PER idea, and now costs one:
123
123
 
124
124
  > Cluster of 3 likely duplicates: #101 "Add dark mode toggle", #145 "Dark mode support", #203 "Support a dark theme". **Keep #101 and merge the rest, discard all, walk them individually, or skip?**
125
125
 
@@ -128,7 +128,7 @@ Run `clusterIdeas` (`scripts/gds/triage.js` — pure, no I/O): it groups open qu
128
128
  - **Individually** → ignore the grouping for this cluster; each member returns to the normal walk.
129
129
  - **Skip** → leave the whole cluster open; it clusters again next triage.
130
130
 
131
- `node scripts/gds/triage.js` already runs this pass automatically before its interactive walk — if a human is running the deterministic walker instead of you, they get it for free with no flag.
131
+ `node scripts/bongos/triage.js` already runs this pass automatically before its interactive walk — if a human is running the deterministic walker instead of you, they get it for free with no flag.
132
132
 
133
133
  **Step 1.5b — develop what's LEFT with a lean inline pass by default (task 1001465).**
134
134
 
@@ -151,7 +151,7 @@ Run `clusterIdeas` (`scripts/gds/triage.js` — pure, no I/O): it groups open qu
151
151
  If a human will run the interactive walker instead of the Claude-driven walk below, hand it the cache (works the same whether it came from the lean pass's few subagents or the full deep pass):
152
152
 
153
153
  ```
154
- node scripts/gds/triage.js --development "${TMPDIR:-/tmp}/otb-idea-development.json"
154
+ node scripts/bongos/triage.js --development "${TMPDIR:-/tmp}/otb-idea-development.json"
155
155
  ```
156
156
 
157
157
  `triage.js` prints each idea's developed block above its verdict prompt, and runs its own batch-cluster pass (Step 1.5a) automatically first. It never *generates* the analysis (that's this skill's job); it only displays what the cache holds, and runs exactly as before when no cache is present.
@@ -195,7 +195,7 @@ a quarter of work; that is the judgement triage adds.
195
195
  **Do the legwork before recommending.** A recommendation with nothing behind it is
196
196
  worse than no recommendation, because it looks like an answer. Run
197
197
  `/recall <the idea's subject>`, check the goal board
198
- (`node scripts/gds/goal.js list`), and look for an existing task before proposing
198
+ (`node scripts/bongos/goal.js list`), and look for an existing task before proposing
199
199
  anything new — "merge" is the recommendation people skip, and it is often the right
200
200
  one.
201
201
 
@@ -227,24 +227,24 @@ at the triage end, where the judgement is.)
227
227
 
228
228
  ```
229
229
  # 1. Create the task (--body-file avoids shell-quoting the touches[]/description).
230
- node scripts/gds/api.js POST /api/bongos/tasks --body-file <path-to-task.json>
230
+ node scripts/bongos/api.js POST /api/bongos/tasks --body-file <path-to-task.json>
231
231
  # task.json: {"version_id":"...","title":"...","description":"...","touches":[...],
232
232
  # "est_minutes":N,"priority":N,"credits_reward":N,"source":"idea_inbox","source_ref":"idea:<idea_id>"}
233
233
  # 2. Mark the idea promoted, pointing promoted_to_task_id at the new task id.
234
- node scripts/gds/api.js PATCH /api/bongos/inbox/<idea_id> --body '{"status":"promoted","promoted_to_task_id":<new_task_id>}'
234
+ node scripts/bongos/api.js PATCH /api/bongos/inbox/<idea_id> --body '{"status":"promoted","promoted_to_task_id":<new_task_id>}'
235
235
  ```
236
236
 
237
237
  - **Promote → goal** (Metic+; Archon if the scope includes a `protected` module). For anything needing criteria and seed tasks, run [`/goal-create`](../goal-create/SKILL.md) — it does the reuse-vs-new check, the scope wall and the sign-off. The bare one-liner below is fine only for a goal you are deliberately leaving empty. Create the goal, then mark the idea promoted — `promoted_to_task_id` stays NULL (a goal isn't a task; note the new goal id in the session log, mirroring how criterion-promotion records its link).
238
238
 
239
239
  ```
240
- node scripts/gds/api.js POST /api/bongos/goals --body '{"version_id":"<ver>","title":"...","description":"from idea #<idea_id>","scope_modules":["<module-key>", ...]}'
241
- node scripts/gds/api.js PATCH /api/bongos/inbox/<idea_id> --body '{"status":"promoted"}'
240
+ node scripts/bongos/api.js POST /api/bongos/goals --body '{"version_id":"<ver>","title":"...","description":"from idea #<idea_id>","scope_modules":["<module-key>", ...]}'
241
+ node scripts/bongos/api.js PATCH /api/bongos/inbox/<idea_id> --body '{"status":"promoted"}'
242
242
  ```
243
243
 
244
244
  - **Promote → criterion** (Metic+ — `idea.ratify`, metic-floored since ADR 0157; done-when writes are scope-shaping, criterion C2). This reuses the existing ratify path: the idea must be `kind='criterion-proposal'` with a `body_md` JSON of `{target_version, criterion_md, sort_order_hint}` (the `/planning-session` shape). One atomic call both inserts the criterion and marks the idea promoted:
245
245
 
246
246
  ```
247
- node scripts/gds/api.js POST /api/bongos/inbox/<idea_id>/ratify --body '{"notes_md":"ratified via idea-triage"}'
247
+ node scripts/bongos/api.js POST /api/bongos/inbox/<idea_id>/ratify --body '{"notes_md":"ratified via idea-triage"}'
248
248
  ```
249
249
 
250
250
  If the idea isn't already criterion-proposal-shaped, either re-file it in that shape or promote it to a task/goal instead — don't hand-write a `done_when_criteria` row.
@@ -252,13 +252,13 @@ at the triage end, where the judgement is.)
252
252
  **Discard** → mark it closed, with the reason (`triage_note`, task 1002447 / migration core_195 — a discard with no reason is a verdict nobody can audit):
253
253
 
254
254
  ```
255
- node scripts/gds/api.js PATCH /api/bongos/inbox/<idea_id> --body '{"status":"discarded","triage_note":"superseded by the new gate"}'
255
+ node scripts/bongos/api.js PATCH /api/bongos/inbox/<idea_id> --body '{"status":"discarded","triage_note":"superseded by the new gate"}'
256
256
  ```
257
257
 
258
258
  **Merge** → ask the user which other idea N is the canonical one, then fold this one into it:
259
259
 
260
260
  ```
261
- node scripts/gds/api.js PATCH /api/bongos/inbox/<idea_id> --body '{"status":"merged","merged_into_idea_id":<canonical_idea_id>,"triage_note":"same ask as #N"}'
261
+ node scripts/bongos/api.js PATCH /api/bongos/inbox/<idea_id> --body '{"status":"merged","merged_into_idea_id":<canonical_idea_id>,"triage_note":"same ask as #N"}'
262
262
  ```
263
263
 
264
264
  > **`merged_into_idea_id`, NOT `promoted_to_task_id`.** This skill used to document the latter; that column is `REFERENCES tasks(id)`, so an idea id written there either trips the FK (a 500) or silently points at an unrelated task that happens to share the number. Task 1002447 added the real column. The server refuses a self-merge (`MERGE_SELF`), a target that doesn't exist (`MERGE_TARGET_NOT_FOUND`), and a target that is itself merged (`MERGE_TARGET_MERGED` — it names where the chain ends, so retarget there).
@@ -28,7 +28,7 @@ The queue this skill works against is **tasks at status='confirmed'**. Those are
28
28
  **Step 0 — preflight this machine, before anything else.**
29
29
 
30
30
  ```bash
31
- node scripts/gds/skill-preflight.js merge-mode # exits 1 naming what is MISSING
31
+ node scripts/bongos/skill-preflight.js merge-mode # exits 1 naming what is MISSING
32
32
  ```
33
33
 
34
34
  If it exits non-zero, **stop**: this machine cannot finish the procedure, and the
@@ -45,12 +45,12 @@ stopped the run (task 1003167).
45
45
  > `ssh` / `deploy.sh` / branch-inventory steps below assume a bash environment
46
46
  > (the Archon's Mac/Linux or the droplet) by design and are NOT a Windows-builder
47
47
  > concern. The Bongos *API* calls, however, go through the cross-platform
48
- > `node scripts/gds/api.js` helper so they work regardless of shell.
48
+ > `node scripts/bongos/api.js` helper so they work regardless of shell.
49
49
 
50
50
  **Step 1 — list the queue: tasks at confirmed.**
51
51
 
52
52
  ```
53
- node scripts/gds/api.js GET "/api/bongos/tasks?status=confirmed"
53
+ node scripts/bongos/api.js GET "/api/bongos/tasks?status=confirmed"
54
54
  ```
55
55
 
56
56
  If the list is empty, print "no tasks at confirmed — auto-merge in /builder-ship handled them all" and exit.
@@ -66,7 +66,7 @@ If the list is empty, print "no tasks at confirmed — auto-merge in /builder-sh
66
66
  REPO_ROOT="$(dirname "$(git rev-parse --git-common-dir)")"
67
67
  cd "$REPO_ROOT"
68
68
 
69
- node scripts/gds/merge-lock.js acquire # blocks up to 30s; exit 3 if a ship/merge holds it — then STOP and retry later
69
+ node scripts/bongos/merge-lock.js acquire # blocks up to 30s; exit 3 if a ship/merge holds it — then STOP and retry later
70
70
  # (exit 0 = you hold the lock; proceed. exit 3 = held by another run; do not force past this.)
71
71
 
72
72
  find .git -name "* 2" -delete # macOS Finder iCloud duplicates — known recurring snag
@@ -114,7 +114,7 @@ Group branches into:
114
114
  After all merges, on `main`, regenerate the 3 mechanical onboarding diagrams from live facts so `/builders/diagrams` stays current. If anything changed, commit it onto main before pushing:
115
115
 
116
116
  ```bash
117
- node scripts/gds/gen-diagrams.js # regenerate + render (no-op if already current)
117
+ node scripts/bongos/gen-diagrams.js # regenerate + render (no-op if already current)
118
118
  git -C "$REPO_ROOT" add docs/onboarding/diagrams
119
119
  git -C "$REPO_ROOT" diff --cached --quiet || \
120
120
  git -C "$REPO_ROOT" commit -m "chore(diagrams): auto-regenerate mechanical diagrams from live facts (task 357)"
@@ -124,18 +124,18 @@ This mirrors what `ship.js` does automatically; it's here because /merge-mode de
124
124
 
125
125
  **Step 5 — smoke tests, push, deploy.**
126
126
 
127
- > **Deploy mode (#679 / [ADR 0042](../../../docs/adr/0042-builder-self-deploy-ci-auto-merge.md)).** `config/deploy.json` is now `mode: ci` (CI cutover landed 2026-06-13), so the **`ci`** path is current: there is no laptop merge and no SSH at all — landing happens via PR auto-merge and `.github/workflows/deploy-prod.yml` (instance-side) deploys `main`→prod from Actions. In `ci` mode, do NOT run the `git push origin main` + `ssh … ~/deploy.sh` lines below — instead confirm the PR auto-merged and the `deploy-prod` Actions run went green. The block below is the **legacy `laptop`** deploy mode (the operator's machine pushes `main` and SSHes the droplet) — it is the fallback path and only applies if `config/deploy.json` is reverted to `mode: laptop`. Check the active mode with `node scripts/gds/ship.js --print-deploy-mode`.
127
+ > **Deploy mode (#679 / [ADR 0042](../../../docs/adr/0042-builder-self-deploy-ci-auto-merge.md)).** `config/deploy.json` is now `mode: ci` (CI cutover landed 2026-06-13), so the **`ci`** path is current: there is no laptop merge and no SSH at all — landing happens via PR auto-merge and `.github/workflows/deploy-prod.yml` (instance-side) deploys `main`→prod from Actions. In `ci` mode, do NOT run the `git push origin main` + `ssh … ~/deploy.sh` lines below — instead confirm the PR auto-merged and the `deploy-prod` Actions run went green. The block below is the **legacy `laptop`** deploy mode (the operator's machine pushes `main` and SSHes the droplet) — it is the fallback path and only applies if `config/deploy.json` is reverted to `mode: laptop`. Check the active mode with `node scripts/bongos/ship.js --print-deploy-mode`.
128
128
 
129
129
  > **Do NOT probe `parseDeployMode` directly (task 1003221).** It reads only the env var and `config/deploy.json`, and **defaults to `laptop`** when neither is present — so on any machine whose checkout does not carry `config/`, that probe answers `laptop` every time. It sent a builder down the laptop merge path — local merge, `push-main.js`, SSH deploy — on a machine with none of those credentials (2026-08-21, 163 minutes). `effectiveDeployMode` is the credential-aware answer and reroutes to `ci` when the machine cannot push locally; the flag above prints that one.
130
130
 
131
131
  ```bash
132
- node scripts/gds/smoke-gds.js # 16/16 expected (cross-platform; replaces smoke-gds.sh)
133
- bash scripts/gds/smoke-write.sh # 4/4 expected
134
- node scripts/gds/push-main.js # SEC #863: the sanctioned gated main-push (NOT raw `git push origin main`)
132
+ node scripts/bongos/smoke-gds.js # 16/16 expected (cross-platform; replaces smoke-gds.sh)
133
+ bash scripts/bongos/smoke-write.sh # 4/4 expected
134
+ node scripts/bongos/push-main.js # SEC #863: the sanctioned gated main-push (NOT raw `git push origin main`)
135
135
  ssh -o ConnectTimeout=10 lars@REDACTED_IP "~/deploy.sh"
136
136
  ```
137
137
 
138
- > **SEC #863 (ADR 0043):** push `main` only via `node scripts/gds/push-main.js`. A raw `git push origin main` is now blocked by the pre-push permission gate — that block is the friction that stops an ad-hoc bypass like the Builder 25 incident. `push-main.js` carries the `<PREFIX>_ALLOW_MAIN_PUSH` override (`BONGOS_` on a vanilla instance) because /merge-mode only ever lands tasks that already passed the grader + the Archon confirm gate. The post-push main audit (`node scripts/gds/main-audit.js`) re-checks regardless.
138
+ > **SEC #863 (ADR 0043):** push `main` only via `node scripts/bongos/push-main.js`. A raw `git push origin main` is now blocked by the pre-push permission gate — that block is the friction that stops an ad-hoc bypass like the Builder 25 incident. `push-main.js` carries the `<PREFIX>_ALLOW_MAIN_PUSH` override (`BONGOS_` on a vanilla instance) because /merge-mode only ever lands tasks that already passed the grader + the Archon confirm gate. The post-push main audit (`node scripts/bongos/main-audit.js`) re-checks regardless.
139
139
 
140
140
  The deploy script applies any new migrations, restarts the service, and curls /healthz.
141
141
 
@@ -156,7 +156,7 @@ Non-blocking — a "branch already deleted" warning is fine. The local `refs/hea
156
156
  Now that the merge + deploy is done (or if you're aborting), release the lock acquired in Step 2 so the next ship/merge can proceed:
157
157
 
158
158
  ```bash
159
- node scripts/gds/merge-lock.js release
159
+ node scripts/bongos/merge-lock.js release
160
160
  ```
161
161
 
162
162
  This is mandatory on every exit path — including aborts and conflicts you decide not to resolve. A manual hold left behind is reclaimed automatically after 30 minutes, but releasing promptly keeps the queue flowing.
@@ -166,7 +166,7 @@ This is mandatory on every exit path — including aborts and conflicts you deci
166
166
  For each task that successfully merged + deployed:
167
167
 
168
168
  ```
169
- node scripts/gds/api.js POST /api/bongos/tasks/<task-id>/ship
169
+ node scripts/bongos/api.js POST /api/bongos/tasks/<task-id>/ship
170
170
  ```
171
171
 
172
172
  The `POST /tasks/:id/ship` endpoint flips the task to `shipped`, stamps `shipped_at`. **This is the credit moment** — [ADR 0120](../../../docs/adr/0120-pay-on-land-and-builder-owned-rebase-gate.md) books the reward on land, so this call is what pays the builder (on a `cost-plus-only` instance like Cloud Bongos that is the cost-plus session reward only — the per-task estimate is never paid; [ADR 0146](../../../docs/adr/<redacted><redacted>.md)).
@@ -186,8 +186,8 @@ If anything is blocked or failed, name what specifically needs to happen next (a
186
186
 
187
187
  - **No tasks at confirmed?** Print "queue clean — auto-merge in /builder-ship handled them all" and exit.
188
188
  - **A confirmed task has no matching branch?** Either the branch was already deleted or the worktree_name on the claim doesn't match a real branch. Surface this — usually means the auto-merge in /builder-ship succeeded but the task didn't transition to shipped (look for a stuck state). Manual `POST /tasks/:id/ship` may be needed.
189
- - **Conflict resolution ambiguous?** Stop and ask the user before guessing — destructive actions like `git reset` or `--no-verify` are NOT allowed without explicit confirmation. **Release the merge lock (`node scripts/gds/merge-lock.js release`) before pausing** so a queued ship isn't blocked while you wait on the user.
190
- - **Lock held when you try to acquire (exit 3)?** A ship or another merge run is actively mutating main. Do NOT force past it — wait and retry, or run `node scripts/gds/merge-lock.js status` to see the holder's age (it auto-reclaims if stale).
189
+ - **Conflict resolution ambiguous?** Stop and ask the user before guessing — destructive actions like `git reset` or `--no-verify` are NOT allowed without explicit confirmation. **Release the merge lock (`node scripts/bongos/merge-lock.js release`) before pausing** so a queued ship isn't blocked while you wait on the user.
190
+ - **Lock held when you try to acquire (exit 3)?** A ship or another merge run is actively mutating main. Do NOT force past it — wait and retry, or run `node scripts/bongos/merge-lock.js status` to see the holder's age (it auto-reclaims if stale).
191
191
 
192
192
  ## When to run
193
193
 
@@ -66,7 +66,7 @@ Nothing here is final: modules can be added after creation from the project's ow
66
66
  Before anything is provisioned, verify the control-plane's Cloudflare token can actually manage the domain's zone (a mismatched-zone token is exactly what broke the Emersonian standup mid-flow):
67
67
 
68
68
  ```bash
69
- node scripts/gds/provision.js dns-check <domain>
69
+ node scripts/bongos/provision.js dns-check <domain>
70
70
  ```
71
71
 
72
72
  - ✓ reachable → continue.
@@ -96,8 +96,8 @@ Materialize the instance's own repo (ADR 0108): clone the empty GitHub repo to t
96
96
  The web tier only **enqueued** the request; the **control-plane runner** does the real work (it alone holds the DO/Cloudflare tokens):
97
97
 
98
98
  ```bash
99
- node scripts/gds/provision.js run-intents --apply # drains the queue
100
- # or, for one instance: node scripts/gds/provision.js provision <slug> --apply
99
+ node scripts/bongos/provision.js run-intents --apply # drains the queue
100
+ # or, for one instance: node scripts/bongos/provision.js provision <slug> --apply
101
101
  ```
102
102
 
103
103
  For `standalone` this composes: allocate a port → `git pull` + `npm ci --omit=dev` (installs the pinned core) → `createdb` + **instance-root** migrate (`node_modules/@cloudbongos/core/scripts/migrate.sh`) → per-instance `/etc/<slug>/web.env` → a **standalone systemd unit** (runs the core package's `platform-server.js` from the instance repo) → DNS A-record UPSERT → per-instance Caddy snippet (on-demand TLS) → `/healthz`. It is idempotent + dry-run-by-default (omit `--apply` to preview). It **fail-fasts on the step-4 DNS preflight** if that token check was skipped.
@@ -122,7 +122,7 @@ The instance's sign-in code is **unchanged** — a GitHub App's user token hits
122
122
  - Copy the **Client ID**; click **Generate a new client secret** and copy it (GitHub shows it **once**). Then place it **VERIFIED, never by hand (task 1979)**:
123
123
 
124
124
  ```bash
125
- node scripts/gds/oauth-secret.js place <slug> --client-id <id> --client-secret <secret> --apply
125
+ node scripts/bongos/oauth-secret.js place <slug> --client-id <id> --client-secret <secret> --apply
126
126
  ```
127
127
 
128
128
  > **Guidance the standup learned:** do **NOT** hand-edit `web.env` with a shell `read -s` — during the Emersonian standup that silently left a 26-char truncated secret that broke sign-in with no obvious cause. `oauth-secret` validates the length/format (catching that truncation), rewrites the env line via Node, restarts the service, then **probes `/healthz` for `auth_configured:true`** before it reports success. If it refuses, the creds are wrong — recheck them; do not proceed.
@@ -191,5 +191,5 @@ Steps 12 and 13 are **not** part of that criterion and must never gate it. They
191
191
  - **Steps 12 and 13 are deliberately NOT in that plan**, and that is the distinction to keep: the plan is the creation rail, and both of those run only once the project exists. A step that can only run after the terminal step is not a step in the rail ([ADR 0249](../../../docs/adr/0249-the-invite-step-is-the-done-panel-s-first-act-not-a-rail-step.md)) — it belongs to the done panel and the project's own page, each of which carries its own way back.
192
192
  - **Standalone only** (ADR 0108) — do not fall back to editing this monorepo's checkout for a new project.
193
193
  - **Never weaken the trust boundary** — the web tier enqueues; only the control-plane runner (`provision.js`) touches cloud tokens (ADR 0016 / 0111 §2).
194
- - **Live docs are automatic** — a standalone instance's session-log index regenerates on deploy (`provision.js` runs `regen-instance-docs.js` after migrate; `bongos init`/`upgrade` seed+refresh it), and the whole-file nav docs are gitignored so `git reset --hard` never wipes them ([ADR 0147](../../../docs/adr/0147-standalone-live-docs-regen.md)). If you wire a **bespoke** deploy script for an instance, it MUST call `node node_modules/@bongos/core/scripts/gds/regen-instance-docs.js` after `git reset` + migrate — see [`docs/recipes/standalone-live-docs.md`](../../../docs/recipes/standalone-live-docs.md).
194
+ - **Live docs are automatic** — a standalone instance's session-log index regenerates on deploy (`provision.js` runs `regen-instance-docs.js` after migrate; `bongos init`/`upgrade` seed+refresh it), and the whole-file nav docs are gitignored so `git reset --hard` never wipes them ([ADR 0147](../../../docs/adr/0147-standalone-live-docs-regen.md)). If you wire a **bespoke** deploy script for an instance, it MUST call `node node_modules/@bongos/core/scripts/bongos/regen-instance-docs.js` after `git reset` + migrate — see [`docs/recipes/standalone-live-docs.md`](../../../docs/recipes/standalone-live-docs.md).
195
195
  - **Adopting an EXISTING repo** (brownfield) is the other branch of the scaffold leg (step 5) — `bongos init --adopt` ([ADR 0121](../../../docs/adr/0121-greenfield-vs-brownfield-onboarding-adopt-existing-repo.md)): detect → accept-gated conflict pre-flight → additive layering (never clobbers) → real version/goal + backlog import. Built; the `bongos onboard` CLI and the hall "start a project" wizard offer the same greenfield-vs-adopt choice.
@@ -29,7 +29,7 @@ You are running the **owner review**: the one front door to the four queues that
29
29
 
30
30
  The four step playbooks are **hidden** skills (`disable-model-invocation: true`): a person can still type their old `/name`, but you cannot load them through the Skill tool. So for each step, **Read that step's `SKILL.md` with the Read tool and follow it in full** — its rank gate, its queue read, its one-decision-at-a-time walk, its write rules and its summary. This file adds no rule of its own to any step and overrides none; where they differ, the step's playbook wins.
31
31
 
32
- **The rank gate runs once.** All four steps are Metic+. Check it at the top — `node scripts/gds/api.js GET /api/bongos/me`, lowercase `builder.rank` — and if it is `xenos` or `thetes`, stop before reading any queue: *"The owner review is a Metic+ step — it decides what the whole team works on. Ask an Archon to promote you."* An absent `rank` follows the pre-rank passthrough each step describes.
32
+ **The rank gate runs once.** All four steps are Metic+. Check it at the top — `node scripts/bongos/api.js GET /api/bongos/me`, lowercase `builder.rank` — and if it is `xenos` or `thetes`, stop before reading any queue: *"The owner review is a Metic+ step — it decides what the whole team works on. Ask an Archon to promote you."* An absent `rank` follows the pre-rank passthrough each step describes.
33
33
 
34
34
  ## Between steps
35
35
 
@@ -43,7 +43,7 @@ This mirrors GDS-V3 criterion C2 (`three-ranks-gate-everything`) and matches the
43
43
 
44
44
  1. Call `GET /api/bongos/me` and read `builder.rank`. Compare case-insensitively (lowercase it before testing). **If it answers `401`, or the CLI says the Bongos CLI session is no longer valid**, stop before anything else and tell the builder to run `/builder-reauth` (the fast Settings re-issue), then re-run this skill — there is nothing to lose yet. (A session that is valid here can still expire before Phase 5, which is why Phase 4 spools and Phase 5 probes again; task 1002865.)
45
45
  2. **If `rank` is present and lowercases to `xenos`** → stop immediately. Tell the builder: *"Planning sessions set the scope-truth of a version — they're a Metic+ operation. You're currently Xenos. You can still **file** a criterion proposal or task idea via `POST /api/bongos/inbox` (which lands in idea_inbox for a Metic+ builder to ratify at the next planning session); ask an Archon for promotion if you need to run sessions directly."* Do not pull state, do not present criteria, do not propose tasks.
46
- 3. **If `rank` lowercases to `metic`** → proceed in **Metic-mode**: run the five-phase structure below conversationally, but in Phase 5 write proposals to `idea_inbox` (kind=`criterion-proposal` for criteria, kind=`feature` for tasks) tagged with the target version — filed with `node scripts/gds/capture.js "…" --via planning` (or `filed_via: 'planning'` on `POST /inbox`), so the sky records the door they came through (task 1004233; every other filing's door is read off the session). Any Metic+ builder ratifies them (`idea.ratify`, metic-floored since ADR 0157) — typically at the next planning session. Since [ADR 0090](../../../docs/adr/0090-metic-task-authoring.md) a Metic MAY `POST /tasks` directly, and since [ADR 0154](../../../docs/adr/0154-goal-owner-criterion-authoring.md) a Metic MAY write a `done_when_criteria` row for a goal they own or manage. What needs an Archon is a VERSION-level criterion (no `goal_id`), one in a goal you don't hold, and — since [ADR 0250](../../../docs/adr/0250-strict-versioning-the-version-boundary-is-the-scope-gate.md) §6 (task 1003608) — **creating a version at all**: `version.create` returned to the Archon floor, because once the version boundary carries the scope gate, cutting a version is the way around it rather than authoring. ADR 0157 had briefly delegated it to Metic; it no longer is. The spec-draft (Phase 3) and the in-depth interview (Phase 4) run identically in Metic-mode — the only difference is the Phase-5 write (you file proposals, you don't seed tasks directly).
46
+ 3. **If `rank` lowercases to `metic`** → proceed in **Metic-mode**: run the five-phase structure below conversationally, but in Phase 5 write proposals to `idea_inbox` (kind=`criterion-proposal` for criteria, kind=`feature` for tasks) tagged with the target version — filed with `node scripts/bongos/capture.js "…" --via planning` (or `filed_via: 'planning'` on `POST /inbox`), so the sky records the door they came through (task 1004233; every other filing's door is read off the session). Any Metic+ builder ratifies them (`idea.ratify`, metic-floored since ADR 0157) — typically at the next planning session. Since [ADR 0090](../../../docs/adr/0090-metic-task-authoring.md) a Metic MAY `POST /tasks` directly, and since [ADR 0154](../../../docs/adr/0154-goal-owner-criterion-authoring.md) a Metic MAY write a `done_when_criteria` row for a goal they own or manage. What needs an Archon is a VERSION-level criterion (no `goal_id`), one in a goal you don't hold, and — since [ADR 0250](../../../docs/adr/0250-strict-versioning-the-version-boundary-is-the-scope-gate.md) §6 (task 1003608) — **creating a version at all**: `version.create` returned to the Archon floor, because once the version boundary carries the scope gate, cutting a version is the way around it rather than authoring. ADR 0157 had briefly delegated it to Metic; it no longer is. The spec-draft (Phase 3) and the in-depth interview (Phase 4) run identically in Metic-mode — the only difference is the Phase-5 write (you file proposals, you don't seed tasks directly).
47
47
 
48
48
  **For each criterion proposal**, write `body_md` as a JSON object with this exact shape so the `POST /api/bongos/inbox/:id/ratify` endpoint (V3.R31 / #252) can parse it cleanly:
49
49
 
@@ -89,7 +89,7 @@ This is where the user sees what they're shaping. Do not skip this — criteria
89
89
  4. **Rescope — carry achieved goals forward (ADR 0086 §6 / BV1.R64).** If this version succeeds a prior one, pull the prior version's **achieved** goals and decide, per goal, "previous or new":
90
90
 
91
91
  ```
92
- node scripts/gds/api.js GET "/api/bongos/goals?version=<prev>&status=achieved"
92
+ node scripts/bongos/api.js GET "/api/bongos/goals?version=<prev>&status=achieved"
93
93
  ```
94
94
 
95
95
  - **Carry forward** — the goal's objective continues into this version. Create the successor goal in Phase 5 with `succeeds_goal_id` pointing at the prior goal (`POST /goals` stamps the predecessor's `succeeded_by_goal_id`), then **archive the prior goal** (`POST /goals/:id/archive`). The lineage stays queryable.
@@ -243,7 +243,7 @@ a builder-local one (so the bash/`ssh`/`psql` here is server-side by design, not
243
243
  a Windows concern):
244
244
 
245
245
  ```bash
246
- node scripts/gds/skill-preflight.js planning-session # stops here if this box has no ssh
246
+ node scripts/bongos/skill-preflight.js planning-session # stops here if this box has no ssh
247
247
  ssh lars@REDACTED_IP "psql -d example -c '\\d tasks' | grep -i check"
248
248
  ```
249
249
 
@@ -292,27 +292,27 @@ Once the spec is finalized (Phase 4), **read `docs/specs/<ver>-<goal-slug>.md` a
292
292
  2. **Create the version's goals, then write the criteria migration.** Goals come first (ADR 0086) so the criteria can be parented under them:
293
293
  - **Goals** (via API — `POST /goals`; Archon-only when the scope includes a `protected` module). One per goal from Phase 2.5; **capture each returned goal id**.
294
294
  ```
295
- node scripts/gds/api.js POST /api/bongos/goals --body '{"version_id":"<ver>","title":"...","scope_modules":["<key>", ...]}'
295
+ node scripts/bongos/api.js POST /api/bongos/goals --body '{"version_id":"<ver>","title":"...","scope_modules":["<key>", ...]}'
296
296
  # carry-forward goal: add "succeeds_goal_id":<prior_goal_id>
297
297
  ```
298
298
  - **Criteria — the vector depends on whether the instance is LIVE ([ADR 0105](../../../docs/adr/0105-instance-seed-migrations-out-of-core.md)):**
299
299
  - **On a RUNNING instance (the normal case — planning a new goal/version on prod):** create each criterion via the **`POST /api/bongos/versions/:id/done-when`** API (**Metic+ for a goal you own or manage — [ADR 0154](../../../docs/adr/0154-goal-owner-criterion-authoring.md); Archon for a version-level criterion, someone else's goal, or a shipped/frozen version**), passing `criterion_id` (a stable slug), `criterion_md`, `goal_id` (the goal from above), and optional `sort_order`. This is the ONLY vector that actually lands a NEW criterion on a live DB — a `done_when_criteria` INSERT in a CORE migration **fails the `selfhost-boot` gate** (scope-truth pollution), and one in `migrations/instance/` **silently no-ops on a normal deploy** (ADR 0105 applies instance seeds only under the owner opt-in `GDS_APPLY_INSTANCE_SEEDS=1`, a DR step). A duplicate `criterion_id` returns 409 — treat as "already seeded."
300
300
  ```
301
- node scripts/gds/api.js POST /api/bongos/versions/<ver>/done-when --body '{"criterion_id":"<slug>","criterion_md":"...","goal_id":<gid>}'
301
+ node scripts/bongos/api.js POST /api/bongos/versions/<ver>/done-when --body '{"criterion_id":"<slug>","criterion_md":"...","goal_id":<gid>}'
302
302
  ```
303
303
  - **For a brand-new version scaffolded from scratch (DR / a fresh instance):** put the `INSERT INTO done_when_criteria` (with `goal_id`, `ON CONFLICT ... DO UPDATE`) in **`migrations/instance/<NN>_<ver_slug>_planning_seed.sql`** — and recreate the goal idempotently in the same file (the goal is a runtime row a replay won't have). Applies only under `GDS_APPLY_INSTANCE_SEEDS=1`.
304
304
  - **Migration** at `migrations/<NN>_<ver_slug>_planning_seed.sql` (CORE — platform-universal, non-scope-truth changes only): `UPDATE versions SET done_when = ...` and `UPDATE tasks` for existing-task priority + V##.R## title prefix (guarded by `WHERE title NOT LIKE 'V<ver>.R%'`). **Do NOT put versions/goals/`done_when_criteria` INSERTs here** — that's scope-truth and fails the `selfhost-boot` gate (ADR 0105).
305
305
 
306
- 3. **Write a seed script** at `scripts/gds/seed-<ver_slug>-tasks.js` modeled on `scripts/gds/seed-v3-tasks.js` containing:
306
+ 3. **Write a seed script** at `scripts/bongos/seed-<ver_slug>-tasks.js` modeled on `scripts/bongos/<redacted>.js` (or `<redacted>.js`) containing:
307
307
  - The TASKS array — one entry per net-new task with full description, kind, discipline, priority, est_minutes, manual_degree, credits_reward, **optional** `touches` (see below), optional `promoted_idea_id`, `depends_on_refs: ['R##', ...]` (the dep edges captured during brainstorm), AND **`criterion_ids: ['Cn', ...]`** — the done-when criterion(s) this task gates. The brainstorm in Phase 3 is already grouped by criterion, so this is just transcribing that grouping. **Use the criterion_id SLUG, not a positional `"Cn"` token.** `Cn` ranks over the whole VERSION's criteria, so on a version holding more than one goal it resolves to some other goal's criterion — which is how all 15 tasks of goal 1000071 were mislinked while the seed printed success (learning 1000188). Since task 1003108 the server **refuses** a positional ref on a multi-goal version (`400 ambiguous_criterion_ref`) rather than guessing, so a slug is the only ref that works there. The server resolves it against the task's version at create (ADR 0025 / task 438). **This replaces the old `**Criterion:** Cn` prose** — don't write that line anymore; pass `criterion_ids` instead so the task is linked in `task_criteria` at creation and `/status` counts it with no backfill.
308
308
  - **`touches` is now OPTIONAL (task 882 / [ADR 0049](../../../docs/adr/0049-split-parallel-safety-contract.md)).** Omit it (or leave it blank) unless you already know a tight file set and want the advisory overlap signal during the brainstorm. At first `/builder-ship` the server backfills `touches[]` from the real committed diff — the declared set becomes what git actually reported. Don't burn planning effort predicting file lists; a rough or absent prediction is fine and no longer ship-blocking.
309
309
  - **`requires_rank` AUTO-DERIVES — you don't hand-set it per task (task [#1498](https://example.com/builders#/task/1498) / [ADR 0084](../../../docs/adr/0084-auto-derived-per-task-rank-floor.md)).** On create the server floors a task at `metic` when it is `security_sensitive` or its `touches` reach the permission / authz / ship-grade / deploy / migration core (the same protected paths a sub-Metic builder can't push to); everything else stays the open `xenos` default. To deliberately gate a task **higher** than the auto-floor (e.g. owner-only work), pass `requires_rank: 'metic' | 'archon'` on the task — it can only RAISE the floor, never drop below it.
310
310
  - **Pass `goal_id: <gid>` on each task** so it lands under its goal (not the version's default catch-all). `POST /tasks` now honors `goal_id` (validated to belong to the version); to move an already-created task, `PATCH /tasks/:id` with `{goal_id}` (task 1763). `criterion_ids` accepts a **slug** (the `criterion_id` you set above), a numeric id, or a `"Cn"` position — **but `Cn` is rejected outright once the version holds a second goal**, and a version almost always gains one. Treat the slug as the only form you write.
311
311
  - A main() that POSTs each task **with its `criterion_ids`** (idempotent on `source_ref`; the criterion links are inserted at create, idempotent on `(task_id, criterion_id)`), PATCHes `idea_inbox` for promotions, and after all tasks exist, POSTs `task_dependencies` via `POST /tasks/:id/dependencies` (resolving each R## to the just-created task ID). Idempotent on `(task_id, depends_on_task_id)`. (Need to re-attribute an already-seeded task? `POST /tasks/:id/criteria` with `{criterion_ids:['Cn',...]}`; `DELETE /tasks/:id/criteria/:criterionId` to detach — both Metic+ ([ADR 0090](../../../docs/adr/0090-metic-task-authoring.md)), mirroring the dependency endpoints.)
312
312
 
313
- > **Seeding contract — validated on goal 1000045 (2026-07-16):** proof-tasks use `kind='verify'` (a deliverable that IS a verification; can't be prematurely confirmed), spikes `kind='spike'`; `POST /tasks` accepts `criterion_ids` + `goal_id` inline and disciplines include `ui`; there is **no `promoted_idea_id`** field on `POST /tasks` — mark a promoted idea via `PATCH /inbox/:id`; **descoping a criterion has no API** (done-when is create/satisfy/unsatisfy only) — remove the row via a direct DB delete (`ssh … "sudo -u postgres psql -d <db> -c \"DELETE FROM done_when_criteria WHERE id=…\""`) under the meta-task claim, capturing the SQL in its notes; and a seed script **must throttle + honor `429` `retry_after`** (per-IP rate limit) — add a base delay between calls and back off on 429, or a large seed dies halfway. A completed reference seed: `scripts/gds/<redacted>.js`.
313
+ > **Seeding contract — validated on goal 1000045 (2026-07-16):** proof-tasks use `kind='verify'` (a deliverable that IS a verification; can't be prematurely confirmed), spikes `kind='spike'`; `POST /tasks` accepts `criterion_ids` + `goal_id` inline and disciplines include `ui`; there is **no `promoted_idea_id`** field on `POST /tasks` — mark a promoted idea via `PATCH /inbox/:id`; **descoping a criterion has no API** (done-when is create/satisfy/unsatisfy only) — remove the row via a direct DB delete (`ssh … "sudo -u postgres psql -d <db> -c \"DELETE FROM done_when_criteria WHERE id=…\""`) under the meta-task claim, capturing the SQL in its notes; and a seed script **must throttle + honor `429` `retry_after`** (per-IP rate limit) — add a base delay between calls and back off on 429, or a large seed dies halfway. A completed reference seed: `scripts/bongos/<redacted>.js`.
314
314
  >
315
- > **Every seed script verifies its own criterion links — fail loudly on any mismatch, zero included (task 1003076, retro on goal 1000071).** The goal-1000071 seeder linked all 15 tasks to the WRONG criteria (a positional `"Cn"` token resolved against the whole VERSION's criterion order, not the goal's — learning 1000188) and still printed success; only a manual `GET /goals` rollup caught it, after the fact. Every seed script's `main()` must end by tallying the `criterion_ids` it actually POSTed per task, then calling `verifySeedCriteriaLinks` from [`scripts/gds/seed-verify-criteria.js`](../../../scripts/gds/seed-verify-criteria.js) — it fetches `GET /api/bongos/goals/<id>`, diffs the returned `criteria[].linked_tasks` against that plan, and `exit(1)`s with a loud per-criterion diff on any mismatch (see `expectedCriterionCounts` + `verifySeedCriteriaLinks`). Reference implementation: `scripts/gds/<redacted>.js`. **Seeding into a goal that already has linked tasks?** Call `baselineSeedCriteria` BEFORE the first write and pass its result as `baseline` to the verify (task 1004668; reference: `scripts/gds/<redacted>.js`) — the check then covers every criterion on the goal, pre-existing counts included, and still catches a stray link on one the seed never meant to touch. With a baseline, tally only the tasks this run CREATED — skip any create that answers `idempotent: true`, since a re-run's replayed task is already inside the baseline and counting it again expects its links twice. Without a baseline only the plan's own criteria are checked. This is a script-level check, independent of whatever caused the mislink — it catches the *symptom* (a criterion silently under- or over-linked) whichever bug produces it.
315
+ > **Every seed script verifies its own criterion links — fail loudly on any mismatch, zero included (task 1003076, retro on goal 1000071).** The goal-1000071 seeder linked all 15 tasks to the WRONG criteria (a positional `"Cn"` token resolved against the whole VERSION's criterion order, not the goal's — learning 1000188) and still printed success; only a manual `GET /goals` rollup caught it, after the fact. Every seed script's `main()` must end by tallying the `criterion_ids` it actually POSTed per task, then calling `verifySeedCriteriaLinks` from [`scripts/bongos/seed-verify-criteria.js`](../../../scripts/bongos/seed-verify-criteria.js) — it fetches `GET /api/bongos/goals/<id>`, diffs the returned `criteria[].linked_tasks` against that plan, and `exit(1)`s with a loud per-criterion diff on any mismatch (see `expectedCriterionCounts` + `verifySeedCriteriaLinks`). Reference implementation: `scripts/bongos/<redacted>.js`. **Seeding into a goal that already has linked tasks?** Call `baselineSeedCriteria` BEFORE the first write and pass its result as `baseline` to the verify (task 1004668; reference: `scripts/bongos/<redacted>.js`) — the check then covers every criterion on the goal, pre-existing counts included, and still catches a stray link on one the seed never meant to touch. With a baseline, tally only the tasks this run CREATED — skip any create that answers `idempotent: true`, since a re-run's replayed task is already inside the baseline and counting it again expects its links twice. Without a baseline only the plan's own criteria are checked. This is a script-level check, independent of whatever caused the mislink — it catches the *symptom* (a criterion silently under- or over-linked) whichever bug produces it.
316
316
 
317
317
  4. **Apply the migration** (commit + push + deploy, or direct psql via SSH for hot-fix style).
318
318
 
@@ -328,7 +328,7 @@ Once the spec is finalized (Phase 4), **read `docs/specs/<ver>-<goal-slug>.md` a
328
328
 
329
329
  Both are ordinary carry-overs in any version that has been live for a while, so the blast radius grows the longer an instance runs.
330
330
 
331
- Every seed script POSTs with `source: 'planning-session'` and a per-seed `source_ref` prefix (see `scripts/gds/<redacted>.js`), which is the handle to scope by — it needs no id transcription and cannot drift from what the seed actually created. **Dry-run the SELECT first and read the rows**, in the same psql session as the migration (or via SSH to the droplet):
331
+ Every seed script POSTs with `source: 'planning-session'` and a per-seed `source_ref` prefix (see `scripts/bongos/<redacted>.js`), which is the handle to scope by — it needs no id transcription and cannot drift from what the seed actually created. **Dry-run the SELECT first and read the rows**, in the same psql session as the migration (or via SSH to the droplet):
332
332
 
333
333
  ```sql
334
334
  SELECT id, title, priority, kind
@@ -383,19 +383,19 @@ Once the spec is finalized (Phase 4), **read `docs/specs/<ver>-<goal-slug>.md` a
383
383
 
384
384
  ## How to use — quick reference
385
385
 
386
- All API calls go through the cross-platform `node scripts/gds/api.js` helper —
386
+ All API calls go through the cross-platform `node scripts/bongos/api.js` helper —
387
387
  it signs each request with your session token (no manual token extraction) and
388
388
  runs on Windows/macOS/Linux.
389
389
 
390
390
  ```
391
391
  # Phase 1 — pull state
392
- node scripts/gds/api.js GET /api/bongos/public/versions
393
- node scripts/gds/api.js GET "/api/bongos/tasks?version=<id>"
394
- node scripts/gds/api.js GET /api/bongos/inbox
395
- node scripts/gds/api.js GET /api/bongos/versions/<id>/done-when
392
+ node scripts/bongos/api.js GET /api/bongos/public/versions
393
+ node scripts/bongos/api.js GET "/api/bongos/tasks?version=<id>"
394
+ node scripts/bongos/api.js GET /api/bongos/inbox
395
+ node scripts/bongos/api.js GET /api/bongos/versions/<id>/done-when
396
396
  ```
397
397
 
398
- Phase 5 writes use the same `POST /tasks`, `PATCH /inbox/:id` shape as `idea-triage` and `seed-v3-tasks.js`. Mirror those patterns rather than inventing new ones.
398
+ Phase 5 writes use the same `POST /tasks`, `PATCH /inbox/:id` shape as `idea-triage` and `scripts/bongos/<redacted>.js`. Mirror those patterns rather than inventing new ones.
399
399
 
400
400
  ## Tone for the user
401
401
 
@@ -102,7 +102,7 @@ Leverage is weighted highest because unblocking the team is the strongest team-l
102
102
  - The top-ranked idea is only a valid claim suggestion **if it's already a claimable task**. An open idea is *not* claimable — it's an idea. If the top idea hasn't been promoted to a task yet, say so and offer: *"This isn't a task yet — want me to promote it via `/idea-triage`, or claim the highest-ranked thing that's already a task?"*
103
103
  - Filter claimable tasks by the ranking's themes and by Q7: if the builder said "quick win," prefer low `est_minutes`; if "deep block," prefer the high-leverage foundational work even if it's bigger.
104
104
  - Never suggest something in the builder's `active_claims`.
105
- - Present **one** primary suggestion with a one-line rationale tying it to their answers, plus 1–2 runners-up. End with the exact command: `node scripts/gds/claim.js <id> --worktree <name>` (or `/builder-claim <id>`).
105
+ - Present **one** primary suggestion with a one-line rationale tying it to their answers, plus 1–2 runners-up. End with the exact command: `node scripts/bongos/claim.js <id> --worktree <name>` (or `/builder-claim <id>`).
106
106
 
107
107
  **Write the session-log entry.** A priority session is a real decision on the audit trail — record it. Write `docs/session-logs/YYYY-MM-DD-priority-session.md` (append a numeric suffix if one already exists today) containing:
108
108
 
@@ -120,19 +120,19 @@ Prepend a one-line link to the CLAUDE.md §13 Session Log index (newest at top),
120
120
  # Auth: cli-lib.js resolves the session token (new path gds-session.json,
121
121
  # legacy fallback pms-session.json) and signs every request. Prefer driving the
122
122
  # API through it rather than re-deriving the token inline.
123
- node -e "const {apiCall}=require('./scripts/gds/cli-lib.js'); \
123
+ node -e "const {apiCall}=require('./scripts/bongos/cli-lib.js'); \
124
124
  apiCall('GET','/api/bongos/me').then(r=>console.log(JSON.stringify(r.data,null,2)))"
125
125
 
126
126
  # Phase 1 — pull state
127
- node -e "const {apiCall}=require('./scripts/gds/cli-lib.js'); \
127
+ node -e "const {apiCall}=require('./scripts/bongos/cli-lib.js'); \
128
128
  apiCall('GET','/api/bongos/inbox').then(r=>console.log(JSON.stringify(r.data,null,2)))"
129
- node -e "const {apiCall}=require('./scripts/gds/cli-lib.js'); \
129
+ node -e "const {apiCall}=require('./scripts/bongos/cli-lib.js'); \
130
130
  apiCall('GET','/api/bongos/tasks/claimable').then(r=>console.log(JSON.stringify(r.data,null,2)))"
131
- node -e "const {apiCall}=require('./scripts/gds/cli-lib.js'); \
131
+ node -e "const {apiCall}=require('./scripts/bongos/cli-lib.js'); \
132
132
  apiCall('GET','/api/bongos/blockers').then(r=>console.log(JSON.stringify(r.data,null,2)))" # read-public
133
133
 
134
134
  # Phase 4 — the suggestion resolves to a real claim command
135
- node scripts/gds/claim.js <task_id> --worktree <worktree-name>
135
+ node scripts/bongos/claim.js <task_id> --worktree <worktree-name>
136
136
  ```
137
137
 
138
138
  The read shapes (`/inbox` → `{ ideas, open_count }`, `/me` → `{ builder, active_claims }`) are the same ones `/idea-triage` and `/planning-session` use. Mirror those read patterns rather than inventing new ones. There is no priority-session write to the inbox today — see "Persisting the reweighting — not yet wired" above.