@bongos/core 1.19.714 → 1.19.724

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 (422) hide show
  1. package/.bongos-core.json +488 -413
  2. package/.claude/skills/backlog-review/SKILL.md +3 -3
  3. package/.claude/skills/blocker-review/SKILL.md +1 -1
  4. package/.claude/skills/blocker-solve/SKILL.md +2 -2
  5. package/.claude/skills/builder-reauth/SKILL.md +1 -1
  6. package/.claude/skills/builder-redteam/SKILL.md +1 -1
  7. package/.claude/skills/builder-ship/SKILL.md +1 -1
  8. package/.claude/skills/builder-start/SKILL.md +1 -1
  9. package/.claude/skills/design/SKILL.md +2 -2
  10. package/.claude/skills/feedback/SKILL.md +1 -1
  11. package/.claude/skills/goal-create/SKILL.md +1 -1
  12. package/.claude/skills/goal-review/SKILL.md +2 -2
  13. package/.claude/skills/idea-triage/SKILL.md +5 -5
  14. package/.claude/skills/merge-mode/SKILL.md +4 -4
  15. package/.claude/skills/new-project/SKILL.md +17 -17
  16. package/.claude/skills/planning-session/SKILL.md +11 -11
  17. package/.claude/skills/recall/SKILL.md +2 -2
  18. package/.claude/skills/strand-fix/SKILL.md +1 -1
  19. package/.devcontainer/README.md +2 -2
  20. package/CONTRIBUTING.md +2 -2
  21. package/GOVERNANCE.md +4 -4
  22. package/clients/bongos-client/README.md +1 -1
  23. package/clients/bongos-client/bongos-client.global.js +4 -0
  24. package/clients/bongos-client/index.cjs +4 -0
  25. package/clients/bongos-client/index.d.ts +5 -0
  26. package/clients/bongos-client/index.mjs +4 -0
  27. package/config/branding.neutral.json +4 -2
  28. package/docs/adr/0001-stack-choice-single-vps.md +2 -2
  29. package/docs/adr/0002-digitalocean-over-hetzner.md +1 -1
  30. package/docs/adr/0008-google-chat-oauth-user-auth.md +1 -1
  31. package/docs/adr/0009-autotile-architecture.md +1 -1
  32. package/docs/adr/0011-terrain-id-rendering-model.md +3 -3
  33. package/docs/adr/0013-paths-as-object-overlays-with-autotile-dispatch.md +1 -1
  34. package/docs/adr/0014-families-canonical-over-vocabulary.md +1 -1
  35. package/docs/adr/0015-task-dependencies-and-auto-promotion.md +1 -1
  36. package/docs/adr/0016-trust-boundary-server-enforced-permissions.md +1 -1
  37. package/docs/adr/0018-three-rank-model-goes-live.md +3 -3
  38. package/docs/adr/0020-security-model-public-stub.md +9 -9
  39. package/docs/adr/0021-per-builder-skill-model-preferences.md +2 -2
  40. package/docs/adr/0022-secrets-policy.md +5 -5
  41. package/docs/adr/0024-cloneable-repo-local-first-memory.md +3 -3
  42. package/docs/adr/0024-multi-agent-system-architecture.md +10 -10
  43. package/docs/adr/0025-offsite-backup-vendor-digitalocean-spaces.md +1 -1
  44. package/docs/adr/0025-structured-criterion-task-link.md +1 -1
  45. package/docs/adr/0026-bfg-memory-hygiene-and-cross-builder-learning.md +13 -13
  46. package/docs/adr/0027-bfg-session-inefficiency-evaluator.md +14 -14
  47. package/docs/adr/0029-status-page-outage-resilience.md +1 -1
  48. package/docs/adr/0030-builders-hall-live-updates.md +1 -1
  49. package/docs/adr/0031-cloud-dev-environments-for-builders.md +7 -7
  50. package/docs/adr/0032-discord-mirror-of-gds.md +3 -3
  51. package/docs/adr/0033-discord-bot-service-principal.md +4 -4
  52. package/docs/adr/0034-thetes-graduated-newcomer-rank.md +1 -1
  53. package/docs/adr/0035-builder-onboarding-three-paths.md +4 -4
  54. package/docs/adr/0036-builders-subdomain-and-ui-reorg.md +1 -1
  55. package/docs/adr/0037-discord-channel-management.md +1 -1
  56. package/docs/adr/0038-chromebook-ttyd-cloudflare-tunnel.md +5 -5
  57. package/docs/adr/0039-setup-first-onboarding-ux.md +6 -6
  58. package/docs/adr/0040-remote-control-default-browser-onramp.md +3 -3
  59. package/docs/adr/0041-temporary-grader-bypass-killswitch.md +2 -2
  60. package/docs/adr/0042-builder-self-deploy-ci-auto-merge.md +5 -5
  61. package/docs/adr/0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md +2 -2
  62. package/docs/adr/0044-mediterranean-palette-replacement.md +1 -1
  63. package/docs/adr/0044-per-box-live-game-preview.md +1 -1
  64. package/docs/adr/0046-sandbox-first-review-gate.md +1 -1
  65. package/docs/adr/0047-discord-bugs-intake-anti-abuse.md +1 -1
  66. package/docs/adr/0049-split-parallel-safety-contract.md +1 -1
  67. package/docs/adr/0050-device-flow-admission-invite-gated-by-default.md +2 -2
  68. package/docs/adr/0051-full-session-transcript-corpus.md +2 -2
  69. package/docs/adr/0052-sandbox-for-everyone-game-only-preview.md +1 -1
  70. package/docs/adr/0053-scoped-dev-box-session.md +1 -1
  71. package/docs/adr/0054-session-token-reward-cost-plus.md +7 -7
  72. package/docs/adr/0055-server-mediated-branch-publish.md +2 -2
  73. package/docs/adr/0056-prod-deploy-script-mirror-and-healthcheck-retry.md +3 -3
  74. package/docs/adr/0057-container-cost-ledger.md +1 -1
  75. package/docs/adr/0057-discord-archon-approval-channels.md +2 -2
  76. package/docs/adr/0058-automatic-gate-surface-gatekeeper.md +6 -6
  77. package/docs/adr/0059-single-approval-remove-devbox-approval-gate.md +11 -11
  78. package/docs/adr/0060-gds-retrieval-layer.md +3 -3
  79. package/docs/adr/0061-context-layer-decomposition.md +2 -2
  80. package/docs/adr/0062-medusa-instance-model-decoupling.md +5 -5
  81. package/docs/adr/0063-generated-repo-map-symbol-skeleton.md +2 -2
  82. package/docs/adr/0064-rename-medusa-to-cloud-bongos.md +3 -3
  83. package/docs/adr/0065-agpl-nonprofit-ai-first-governance.md +5 -5
  84. package/docs/adr/0066-generated-file-map-sections.md +2 -2
  85. package/docs/adr/0067-session-start-fast-forward-pull.md +1 -1
  86. package/docs/adr/0068-shared-art-key-for-newcomers.md +1 -1
  87. package/docs/adr/0069-hall-live-channel-sse-decouple.md +3 -3
  88. package/docs/adr/0070-deterministic-session-card-delivery.md +1 -1
  89. package/docs/adr/0071-box-confirm-before-destroyed-and-drift-reconcile.md +2 -2
  90. package/docs/adr/0072-bongos-app-mac-signed-first-windows-deferred.md +2 -2
  91. package/docs/adr/0072-dev-box-code-staleness-visibility.md +2 -2
  92. package/docs/adr/0073-builder-needs-signal-and-byok-gemini-key.md +3 -3
  93. package/docs/adr/0073-secrets-scan-exclude-uri-detector.md +2 -2
  94. package/docs/adr/0076-in-session-deterministic-compaction.md +2 -2
  95. package/docs/adr/0077-content-addressed-llm-cache.md +2 -2
  96. package/docs/adr/0078-deterministic-first-cron.md +3 -3
  97. package/docs/adr/0079-value-gated-autonomous-engagement.md +2 -2
  98. package/docs/adr/0080-llm-cache-api-transport-and-trust-model.md +3 -3
  99. package/docs/adr/0081-tool-agnostic-design-layer.md +3 -3
  100. package/docs/adr/0082-server-side-merge-conflict-auto-resolution.md +2 -2
  101. package/docs/adr/0083-modular-architecture-strangler-build-plan.md +3 -3
  102. package/docs/adr/0085-remove-default-per-builder-spend-cap.md +2 -2
  103. package/docs/adr/0086-goal-scoped-work-hierarchy.md +15 -15
  104. package/docs/adr/0087-bongos-app-architecture-and-handoff-contract.md +5 -5
  105. package/docs/adr/0087-compete-on-governance-not-tooling-cursor.md +1 -1
  106. package/docs/adr/0088-consistent-character-generative-animation.md +5 -5
  107. package/docs/adr/0089-modular-multi-model-adversarial-grader.md +15 -15
  108. package/docs/adr/0090-metic-task-authoring.md +8 -8
  109. package/docs/adr/0091-bounding-the-kernel-and-db-carve.md +3 -3
  110. package/docs/adr/0092-hosting-module-and-on-prem-target.md +11 -11
  111. package/docs/adr/0093-tranche-2-core-carve-sequence.md +5 -5
  112. package/docs/adr/0094-repo-atlas-self-drawing-codebase-map.md +1 -1
  113. package/docs/adr/0095-borrowed-memory-and-retrieval-concepts.md +6 -6
  114. package/docs/adr/0095-cross-agent-context-management.md +5 -5
  115. package/docs/adr/0096-require-reward-before-workable.md +5 -5
  116. package/docs/adr/0097-one-active-claim-per-session-and-worktree-binding.md +2 -2
  117. package/docs/adr/0097-retroactive-reward-backfill.md +4 -4
  118. package/docs/adr/0098-public-mirror-publish-manifest.md +3 -3
  119. package/docs/adr/0099-delayed-redacted-mirror-export.md +1 -1
  120. package/docs/adr/0100-two-repo-instance-model.md +6 -6
  121. package/docs/adr/0101-goal-hierarchy-phase-5-judge-membership-reward.md +9 -9
  122. package/docs/adr/0102-finish-bounding-the-kernel.md +1 -1
  123. package/docs/adr/0103-core-first-extraction-cloud-bongos-trunk.md +6 -6
  124. package/docs/adr/0103-gdsv4-bongos-consolidation.md +3 -3
  125. package/docs/adr/0104-trust-gds-api-channel-in-auto-mode.md +3 -3
  126. package/docs/adr/0105-instance-seed-migrations-out-of-core.md +2 -2
  127. package/docs/adr/0106-goal-owner-manager-authority.md +2 -2
  128. package/docs/adr/0107-module-upstreaming-contribution-to-core-catalog.md +6 -6
  129. package/docs/adr/0108-instance-composition-configurable-root.md +6 -6
  130. package/docs/adr/0109-self-describing-openapi-and-hosted-docs.md +3 -3
  131. package/docs/adr/0110-untrack-whole-file-generated-nav-docs.md +1 -1
  132. package/docs/adr/0111-instance-hosting-provisioning-module.md +18 -18
  133. package/docs/adr/0112-private-goals-invitations-join-requests.md +7 -7
  134. package/docs/adr/0113-sandbox-studio-descope-superseded-by-0044-0052.md +1 -1
  135. package/docs/adr/0114-instance-docs-discovery-contract.md +4 -4
  136. package/docs/adr/0115-scheduled-routines-portability.md +1 -1
  137. package/docs/adr/0117-api-versioning-and-deprecation-policy.md +1 -1
  138. package/docs/adr/0118-api-contract-source-of-truth-code-first.md +1 -1
  139. package/docs/adr/0120-pay-on-land-and-builder-owned-rebase-gate.md +2 -2
  140. package/docs/adr/0121-greenfield-vs-brownfield-onboarding-adopt-existing-repo.md +1 -1
  141. package/docs/adr/0122-onboarding-diagram-renders-deploy-rendered-off-git.md +3 -3
  142. package/docs/adr/0123-box-idle-sweep-autosave-before-destroy.md +1 -1
  143. package/docs/adr/0124-typed-api-response-bodies.md +2 -2
  144. package/docs/adr/0125-control-plane-scaffolds-standalone-instance-repo.md +2 -2
  145. package/docs/adr/0126-dedicated-cloudbongos-control-plane-droplet.md +3 -3
  146. package/docs/adr/0127-cross-box-fleet-observability.md +1 -1
  147. package/docs/adr/0128-provisioning-runner-privilege-and-db-auth-model.md +3 -3
  148. package/docs/adr/0129-cloudbongos-control-plane-pull-deploy.md +4 -4
  149. package/docs/adr/0130-provision-remote-exec-over-ssh.md +4 -4
  150. package/docs/adr/0131-rank-scoped-skill-visibility.md +2 -2
  151. package/docs/adr/0132-cohost-fleet-control-plane-migration.md +2 -2
  152. package/docs/adr/0133-github-app-manifest-onboarding-signin.md +1 -1
  153. package/docs/adr/0134-private-first-npm-distribution.md +3 -3
  154. package/docs/adr/0135-module-upstream-submission-interim-queue.md +1 -1
  155. package/docs/adr/0136-update-channel-subscription-policy.md +2 -2
  156. package/docs/adr/0137-upstream-publish-policy-manual-owner-gated.md +6 -6
  157. package/docs/adr/0138-bundled-module-deps-declared-per-module.md +4 -4
  158. package/docs/adr/0142-project-context-is-prose-only.md +2 -2
  159. package/docs/adr/0143-onboarding-repo-picker-oauth-scope.md +2 -2
  160. package/docs/adr/0144-devbox-rehome-onto-cloudbongos-plane.md +2 -2
  161. package/docs/adr/0145-free-hosted-project-tier-isolation-and-domain-separation.md +2 -2
  162. package/docs/adr/0146-configurable-reward-mode-cost-plus-only.md +4 -4
  163. package/docs/adr/0147-standalone-live-docs-regen.md +1 -1
  164. package/docs/adr/0149-bongos-dev-local-launcher.md +1 -1
  165. package/docs/adr/0150-box-first-boot-bringup-vendored-instances.md +3 -3
  166. package/docs/adr/0151-governance-permissions-as-atom-ranks-as-roles.md +20 -20
  167. package/docs/adr/0152-landing-gate-served-by-the-core-app.md +2 -2
  168. package/docs/adr/0152-metic-task-abandonment.md +7 -7
  169. package/docs/adr/0153-sequential-chain-runner.md +1 -1
  170. package/docs/adr/0154-goal-owner-criterion-authoring.md +7 -7
  171. package/docs/adr/0155-adopt-private-repo-widen-oauth-scope.md +2 -2
  172. package/docs/adr/0156-user-set-display-name-wins.md +1 -1
  173. package/docs/adr/0157-archon-is-rank-and-identity-only.md +10 -10
  174. package/docs/adr/0158-choke-point-verdict-taxonomy.md +1 -1
  175. package/docs/adr/0159-merge-gate-reconciliation.md +1 -1
  176. package/docs/adr/0160-main-audit-repo-verifiable-caller.md +1 -1
  177. package/docs/adr/0161-publish-on-merge.md +2 -2
  178. package/docs/adr/0163-legacy-display-name-resolution.md +1 -1
  179. package/docs/adr/0165-instances-hookless-by-default.md +1 -1
  180. package/docs/adr/0166-module-maintenance-and-deprecation-policy.md +3 -3
  181. package/docs/adr/0167-gate-trust-link-agpl-default.md +2 -2
  182. package/docs/adr/0167-module-catalog-source-vs-provenance.md +3 -3
  183. package/docs/adr/0169-bongos-serve-server-bring-up.md +1 -1
  184. package/docs/adr/0171-profile-rollup-join-and-consent.md +1 -1
  185. package/docs/adr/0172-editable-rank-roles-substrate-axis.md +2 -2
  186. package/docs/adr/0172-per-craft-compensation-ideator-credit-lane.md +4 -4
  187. package/docs/adr/0173-legacy-multi-ship-shortfall-not-backfilled.md +1 -1
  188. package/docs/adr/0174-government-terminology-ranks-not-roles.md +1 -1
  189. package/docs/adr/0177-goal-membership-kind.md +3 -3
  190. package/docs/adr/0178-the-copy-desk-flag-and-queue.md +1 -1
  191. package/docs/adr/0179-board-membership-predicate-grammar.md +1 -1
  192. package/docs/adr/0181-teardown-state-gate-and-address-retention.md +1 -1
  193. package/docs/adr/0182-project-visibility-two-axes.md +1 -1
  194. package/docs/adr/0183-criteria-close-themselves.md +1 -1
  195. package/docs/adr/0184-ship-requires-an-assurance.md +1 -1
  196. package/docs/adr/0185-spark-handoff-credit-split.md +1 -1
  197. package/docs/adr/0186-per-project-idea-templates.md +1 -1
  198. package/docs/adr/0187-collab-four-decisions.md +1 -1
  199. package/docs/adr/0187-oauth-handshake-cookie-lifetime.md +1 -1
  200. package/docs/adr/0188-patrol-runs-on-ci-not-the-server.md +2 -2
  201. package/docs/adr/0189-baseline-floors-and-the-freeze-detector.md +2 -2
  202. package/docs/adr/0191-majority-and-the-author-who-may-not-decide-alone.md +1 -1
  203. package/docs/adr/0192-a-category-orients-and-authorises-nothing.md +2 -2
  204. package/docs/adr/0193-pause-task-scoped-box-slices.md +1 -1
  205. package/docs/adr/0195-adr-numbers-are-checked-like-migration-numbers.md +2 -2
  206. package/docs/adr/0196-chrome-world-token-contract-and-the-landing-sheets.md +2 -2
  207. package/docs/adr/0197-the-ui-design-module.md +1 -1
  208. package/docs/adr/0198-third-party-skill-vendoring-policy.md +1 -1
  209. package/docs/adr/0203-doorway-changelog-out-of-module-api.md +2 -2
  210. package/docs/adr/0204-the-apex-is-dark-only.md +2 -2
  211. package/docs/adr/0205-federated-checkin-needs-the-hubs-own-signin-witness.md +1 -1
  212. package/docs/adr/0206-own-scoped-session-revocation-no-absolute-ceiling.md +1 -1
  213. package/docs/adr/0207-connections-implementation-departures-and-honest-limits.md +1 -1
  214. package/docs/adr/0208-application-lifecycle-the-handle-waits-and-the-vouch-has-no-minter.md +2 -2
  215. package/docs/adr/0209-one-budget-for-the-account-existence-oracle.md +1 -1
  216. package/docs/adr/0210-scouting-graduates-on-an-instance-asserted-owner-claim.md +1 -1
  217. package/docs/adr/0212-connections-on-the-profile-surface-and-addressing.md +1 -1
  218. package/docs/adr/0213-platform-terms-acceptance-is-the-hubs-own-witness.md +2 -2
  219. package/docs/adr/0215-the-recruiter-sliver-is-a-ceiling-not-a-step.md +6 -6
  220. package/docs/adr/0216-a-fake-pool-interpreter-must-fail-loudly-not-silently-ignore.md +2 -2
  221. package/docs/adr/0217-rank-gates-inviting-not-viewing.md +1 -1
  222. package/docs/adr/0218-the-apex-root-web-surface.md +2 -2
  223. package/docs/adr/0219-a-look-is-a-branding-pack-the-style-library.md +1 -1
  224. package/docs/adr/0220-an-in-house-rebuilt-skill-is-a-first-party-skill.md +1 -1
  225. package/docs/adr/0221-the-impeccable-method-is-one-skill-with-sub-command-playbooks.md +2 -2
  226. package/docs/adr/0222-the-image-family-under-the-hero-only-rule.md +2 -2
  227. package/docs/adr/0223-the-detector-is-two-tiers-in-the-kit.md +3 -3
  228. package/docs/adr/0224-module-skills-reach-the-core-checkout-as-untracked-self-ignored-copies.md +1 -1
  229. package/docs/adr/0225-privacy-suppresses-cross-project-surfaces-only.md +1 -1
  230. package/docs/adr/0226-one-stale-timer-reporting-degrades-enforcement-refuses.md +1 -1
  231. package/docs/adr/0227-a-task-network-map-is-refused-the-goal-graph-is-the-map.md +1 -1
  232. package/docs/adr/0230-a-look-skill-is-a-composition-grammar-the-palette-is-the-pack.md +1 -1
  233. package/docs/adr/0231-the-style-session-an-owner-authors-a-look-inside-the-contract.md +2 -2
  234. package/docs/adr/0232-rot-is-derived-not-swept-and-water-is-the-only-new-verb.md +2 -2
  235. package/docs/adr/0233-a-copy-proposal-is-a-task-carrying-a-patch.md +2 -2
  236. package/docs/adr/0234-idea-routing-capture-time-promotion-landing-matrix-homeless-inbox.md +2 -2
  237. package/docs/adr/0235-a-fix-category-is-kindbug-under-a-goal-no-column-required.md +11 -11
  238. package/docs/adr/0236-many-ideas-one-task-the-lineage-key-is-the-pair.md +5 -5
  239. package/docs/adr/0237-a-starter-bundle-is-a-preset-over-the-always-on-core-keyed-by-declared-type.md +5 -5
  240. package/docs/adr/0238-the-join-door-is-a-provisioning-settings-policy-key.md +1 -1
  241. package/docs/adr/0239-a-recommendation-is-a-table-that-carries-its-own-reason.md +4 -4
  242. package/docs/adr/0240-a-skipped-module-picker-stores-nothing-and-resolves-the-bundle-on-read.md +4 -4
  243. package/docs/adr/0241-the-artist-gate-is-a-per-project-deploy-gate-that-reads-a-state.md +1 -1
  244. package/docs/adr/0242-a-cascade-is-a-declaration-table-on-the-event-that-already-exists.md +2 -2
  245. package/docs/adr/0243-a-bundle-adjustment-belongs-to-the-bundle-not-the-advice-about-it.md +4 -4
  246. package/docs/adr/0244-a-catalog-search-is-a-view-over-the-rows-never-an-edit-to-the-selection.md +3 -3
  247. package/docs/adr/0245-the-way-back-into-an-optional-step-is-that-step-s-own-answer-route.md +7 -7
  248. package/docs/adr/0246-catalog-membership-is-a-projection-not-a-federation-side-effect.md +1 -1
  249. package/docs/adr/0247-the-join-door-is-one-composed-answer-and-dark-matter-has-no-live-verdict-yet.md +2 -2
  250. package/docs/adr/0248-a-hub-project-s-owner-is-the-provisioning-row-carried-on-a-port.md +3 -3
  251. package/docs/adr/0249-the-invite-step-is-the-done-panel-s-first-act-not-a-rail-step.md +3 -3
  252. package/docs/adr/0250-strict-versioning-the-version-boundary-is-the-scope-gate.md +6 -6
  253. package/docs/adr/0251-a-suggestion-of-who-to-invite-is-a-recruiting-surface-and-owes-the-opt-out.md +5 -5
  254. package/docs/adr/0252-the-self-hosted-visibility-report-is-a-pull-and-auto-appear-buys-a-retraction-lever.md +19 -19
  255. package/docs/adr/0253-the-takedown-lever-has-two-writers-and-provenance-is-a-column.md +2 -2
  256. package/docs/adr/0254-a-relayed-link-is-contained-downward-or-it-is-not-published.md +6 -6
  257. package/docs/adr/0255-a-public-lists-ordering-is-part-of-its-payload.md +2 -2
  258. package/docs/adr/0256-the-visibility-ceiling-is-the-sign-in-gate-too-and-the-reader-moves-to-the-composer.md +3 -3
  259. package/docs/adr/0257-auth-resolves-before-the-hall-mounts-anything.md +1 -1
  260. package/docs/adr/0258-the-public-cli-is-a-generated-client-package-not-the-published-core.md +1 -1
  261. package/docs/adr/0259-a-projects-departure-from-the-public-list-is-public.md +7 -7
  262. package/docs/adr/0260-the-application-is-the-consent-and-the-echo-is-the-gate.md +4 -4
  263. package/docs/adr/0261-a-preselect-always-carries-a-reason-the-bundle-summary-is-the-floor.md +1 -1
  264. package/docs/adr/0262-a-bug-never-lands-in-the-inbox.md +1 -1
  265. package/docs/adr/0263-how-a-version-closes.md +3 -3
  266. package/docs/adr/0264-the-ten-working-areas.md +3 -3
  267. package/docs/adr/0265-work-with-no-goal-and-the-order-the-cut-needs.md +5 -5
  268. package/docs/adr/0266-the-board-room-is-its-own-surface-reachable-by-whoever-may-vote.md +2 -2
  269. package/docs/adr/0267-unanimity-and-the-revise-and-re-sit-loop.md +1 -1
  270. package/docs/adr/0268-the-constitution-comes-from-two-roots.md +3 -3
  271. package/docs/adr/0269-the-cli-session-store-is-host-keyed-at-a-fixed-anchor.md +1 -1
  272. package/docs/adr/0270-rank-floor-derives-without-a-prediction.md +2 -2
  273. package/docs/adr/0271-the-ideator-surface-is-two-halves.md +3 -3
  274. package/docs/adr/0272-a-craft-is-an-identity-not-a-toolchain.md +4 -4
  275. package/docs/adr/0273-hall-nav-can-gate-on-a-permission.md +1 -1
  276. package/docs/adr/0274-one-kernel-three-role-packs.md +1 -1
  277. package/docs/adr/0275-one-source-for-a-written-role-responsibility.md +1 -1
  278. package/docs/adr/0276-the-skill-listing-budget-cannot-hold-every-trigger.md +1 -1
  279. package/docs/adr/0277-a-box-is-in-use-only-while-a-human-is-attached.md +1 -1
  280. package/docs/adr/0278-a-gated-project-still-takes-applications.md +2 -2
  281. package/docs/adr/0279-an-upgrade-is-proven-by-the-served-version-not-the-health-check.md +1 -1
  282. package/docs/adr/0280-the-unattended-lane-may-drive-a-co-tenant-because-the-roster-is-the-decision.md +1 -1
  283. package/docs/adr/0281-an-instance-identity-is-its-own-unix-account-and-pg-role.md +2 -2
  284. package/docs/adr/README.md +294 -294
  285. package/docs/api/openapi.json +72 -5
  286. package/docs/api-reference.md +8 -2
  287. package/docs/architecture.md +22 -22
  288. package/docs/branding-contract.md +5 -5
  289. package/docs/canonical-permissions.md +22 -22
  290. package/docs/copy-inventory.md +15 -13
  291. package/docs/copy-registry.json +35 -17
  292. package/docs/design/hall-direction-v2.md +3 -3
  293. package/docs/design/landing-page-direction-v2.md +1 -1
  294. package/docs/design/projects-hub-direction-v2.md +1 -1
  295. package/docs/file-map.md +3 -1
  296. package/docs/module-api-changelog.md +36 -1
  297. package/docs/modules-contract.md +25 -25
  298. package/docs/onboarding/browser-terminal-guide.md +1 -1
  299. package/docs/onboarding/diagrams/README.md +3 -3
  300. package/docs/onboarding/drachmae-and-karma.md +13 -13
  301. package/docs/onboarding/primer.md +7 -7
  302. package/docs/packs/artist.md +1 -1
  303. package/docs/packs/ideator.md +1 -1
  304. package/docs/project-context.template.md +3 -3
  305. package/docs/recipes/builder-box-lifecycle.md +5 -5
  306. package/docs/recipes/claude-design-loop.md +1 -1
  307. package/docs/recipes/core-release-pipeline.md +55 -14
  308. package/docs/recipes/figma-design-loop.md +1 -1
  309. package/docs/recipes/gds-db-backup.md +2 -2
  310. package/docs/recipes/instance-deploy.md +2 -2
  311. package/docs/recipes/instance-service-restart.md +3 -3
  312. package/docs/recipes/local-dev.md +2 -2
  313. package/docs/recipes/managed-settings-remote-control.md +3 -3
  314. package/docs/recipes/memory-backup.md +4 -4
  315. package/docs/recipes/memory-sync-conflicts.md +2 -2
  316. package/docs/recipes/multi-builder-merge.md +2 -2
  317. package/docs/recipes/ops-gotchas.md +4 -4
  318. package/docs/recipes/overnight-builder.md +1 -1
  319. package/docs/recipes/packaging-the-core.md +6 -6
  320. package/docs/recipes/private-npm-distribution.md +5 -5
  321. package/docs/recipes/search-index-ingestion.md +3 -3
  322. package/docs/recipes/self-host.md +5 -5
  323. package/docs/recipes/server-bring-up.md +1 -1
  324. package/docs/recipes/ship-and-regrade.md +2 -2
  325. package/docs/recipes/standalone-live-docs.md +1 -1
  326. package/docs/recipes/ui-look-before-you-ship.md +1 -1
  327. package/docs/recipes/upgrading-the-core.md +2 -2
  328. package/docs/recipes/work-on-a-task-from-your-dev-box.md +6 -6
  329. package/docs/research/cursor-competitive-analysis.md +3 -3
  330. package/docs/research/llm-model-agnostic-and-cheaper-grader.md +7 -7
  331. package/migrations/core_240_artist_gate_indexes.sql +48 -0
  332. package/migrations/core_240_goal_members_drop_legacy_role.sql +79 -0
  333. package/modules/dev-box/app/src/vendor/bongos-client.cjs +4 -0
  334. package/modules/hall-ui/public/watch.css +6 -0
  335. package/modules/hall-ui/public/watch.js +52 -6
  336. package/modules/lifecycle/cascade.js +37 -9
  337. package/modules/lifecycle/db-claims.js +5 -2
  338. package/modules/lifecycle/db-goals.js +4 -3
  339. package/modules/lifecycle/db-overrides.js +117 -4
  340. package/modules/lifecycle/db-tasks.js +63 -0
  341. package/modules/lifecycle/migrations/lifecycle_001_goal_first_leads.sql +12 -4
  342. package/modules/lifecycle/module.json +2 -1
  343. package/modules/lifecycle/pg-constraint-fail.js +49 -0
  344. package/modules/lifecycle/routes/artist-gate.js +101 -0
  345. package/modules/lifecycle/routes/claims.js +13 -1
  346. package/modules/lifecycle/routes/lifecycle.js +6 -0
  347. package/modules/lifecycle/routes/task-write-routes.js +7 -0
  348. package/modules/lifecycle/routes/tasks.js +24 -0
  349. package/modules/lifecycle/task-classifier.js +10 -1
  350. package/modules/lifecycle/tests/cascade.mjs +43 -0
  351. package/modules/provisioning/provisioning.js +79 -3
  352. package/modules/provisioning/routes/provisioning.js +6 -1
  353. package/modules/provisioning/tests/provisioning.mjs +8 -8
  354. package/modules/security/secret-scrub.js +40 -4
  355. package/modules/status-ui/public/README.md +1 -1
  356. package/modules/ui-design/docs/design-contract.md +2 -2
  357. package/modules/ui-design/kit/README.md +1 -1
  358. package/modules/ui-design/kit/serve.js +1 -0
  359. package/modules/ui-design/skills/README.md +6 -6
  360. package/modules/ui-design/skills/brandkit/SKILL.md +1 -1
  361. package/modules/ui-design/skills/design-taste-frontend/SKILL.md +1 -1
  362. package/modules/ui-design/skills/design-taste-frontend-v1/SKILL.md +1 -1
  363. package/modules/ui-design/skills/gpt-taste/SKILL.md +1 -1
  364. package/modules/ui-design/skills/high-end-visual-design/SKILL.md +1 -1
  365. package/modules/ui-design/skills/image-to-code/SKILL.md +1 -1
  366. package/modules/ui-design/skills/imagegen-frontend-mobile/SKILL.md +1 -1
  367. package/modules/ui-design/skills/imagegen-frontend-web/SKILL.md +1 -1
  368. package/modules/ui-design/skills/impeccable/SKILL.md +1 -1
  369. package/modules/ui-design/skills/industrial-brutalist-ui/SKILL.md +1 -1
  370. package/modules/ui-design/skills/minimalist-ui/SKILL.md +1 -1
  371. package/modules/ui-design/skills/redesign-existing-projects/SKILL.md +1 -1
  372. package/modules/ui-design/skills/stitch-design-taste/SKILL.md +1 -1
  373. package/modules/ui-design/skills/style/SKILL.md +2 -2
  374. package/modules/ui-design/styles/README.md +3 -3
  375. package/modules/ui-design/styles/blueprint/DESIGN.md +1 -1
  376. package/modules/ui-design/styles/chrome-world/DESIGN.md +1 -1
  377. package/package-lock.json +2 -2
  378. package/package.json +1 -1
  379. package/scripts/gds/audit-rank-roles.js +172 -0
  380. package/scripts/gds/backfill-task-rewards.js +9 -4
  381. package/scripts/gds/build-cli-package.js +1 -0
  382. package/scripts/gds/claim.js +94 -9
  383. package/scripts/gds/fitness.js +8 -8
  384. package/scripts/gds/go-live.js +139 -5
  385. package/scripts/gds/land-watch.js +13 -5
  386. package/scripts/gds/mirror-redact.js +13 -2
  387. package/scripts/gds/package-core.js +11 -3
  388. package/scripts/gds/release.js +55 -0
  389. package/scripts/gds/ship-land.js +10 -2
  390. package/scripts/gds/ship-regen.js +41 -8
  391. package/scripts/gds/start.js +7 -4
  392. package/scripts/gds/worktree-claim-guard.js +27 -1
  393. package/scripts/public-mirror-export.js +17 -4
  394. package/src/bongos/api-errors.js +9 -0
  395. package/src/bongos/artist-gate.js +204 -0
  396. package/src/branding.js +15 -0
  397. package/src/module-api.js +34 -1
  398. package/tests/api_path_404.mjs +28 -0
  399. package/tests/artist_gate.mjs +234 -0
  400. package/tests/artist_gate_release.mjs +283 -0
  401. package/tests/artist_gate_route.mjs +174 -0
  402. package/tests/box_scope_predicate.mjs +117 -0
  403. package/tests/claim_error_surface.mjs +163 -1
  404. package/tests/cli_exit_no_abort.mjs +256 -3
  405. package/tests/credit_log_single_writer.mjs +94 -0
  406. package/tests/currency_label.mjs +11 -4
  407. package/tests/go_live.mjs +144 -0
  408. package/tests/helpers.mjs +8 -0
  409. package/tests/main_worktree_busy_reason.mjs +167 -0
  410. package/tests/membership_kind_lockstep.mjs +88 -0
  411. package/tests/mirror_redact.mjs +14 -0
  412. package/tests/module_api.mjs +6 -0
  413. package/tests/provision_settings_apply.mjs +13 -5
  414. package/tests/provisioning_settings.mjs +11 -7
  415. package/tests/provisioning_settings_apply.mjs +4 -4
  416. package/tests/provisioning_settings_env.mjs +59 -7
  417. package/tests/public_mirror_export.mjs +12 -0
  418. package/tests/rank_roles_audit.mjs +114 -0
  419. package/tests/scrubber_corpus.mjs +70 -2
  420. package/tests/start_rebase_warning.mjs +50 -0
  421. package/tests/task_field_bounds_match_db.mjs +140 -0
  422. package/tests/watch_roster_self_row.mjs +289 -0
@@ -4,7 +4,7 @@
4
4
  **Status:** Accepted
5
5
  **Track:** `internal` (development system / lifecycle)
6
6
  **Task:** [#1642](https://example.com/builders#/task/1642) (GDS-V4)
7
- **Amends:** [ADR 0049](<redacted>.md) (the parallel-safety contract). 0049 fixed *cross-claim* parallel safety (two claims colliding); this adds the missing *within-session* invariant.
7
+ **Amends:** [ADR 0049](0049-split-parallel-safety-contract.md) (the parallel-safety contract). 0049 fixed *cross-claim* parallel safety (two claims colliding); this adds the missing *within-session* invariant.
8
8
 
9
9
  ## Context — the commingled-ship hole
10
10
 
@@ -38,7 +38,7 @@ The default claim flow (`.claude/skills/builder-claim/SKILL.md`) ensures the tas
38
38
  - **Predicate divergence from the task spec, on purpose.** The spec cited `WHERE status='active'`, but `claims` has **no `status` column** — "active" is the table's `released_at IS NULL` convention (the row's lifecycle status lives on `tasks`). The index uses the real column.
39
39
  - **Migration safety.** A unique index *fails to create* if existing rows already violate it, which would block deploy. The migration first heals any current violation (keep the earliest active bound claim per session, close the rest — the same shape as migration 174), so the `CREATE` always succeeds; it is idempotent. The **app-layer guard is authoritative**; the index is belt-and-braces and must not break deploy.
40
40
 
41
- > **Amended 2026-08-06 (task 1002570 / `core_204`).** The index as shipped was *stricter* than the worktree-scoped guard above: keyed on `creator_session_id` alone, it refused at the DB layer the second-worktree parallel claim the guard deliberately allows — breaking the many-sessions-per-builder norm this ADR set out to preserve. `migrations/<redacted>.sql` re-keys it to `(creator_session_id, COALESCE(worktree_name, ''))` under the name `uniq_active_claim_per_session_worktree`, same partial predicate, so the backstop now enforces exactly the guard's boundary. The `COALESCE` fold (rather than PG15's `NULLS NOT DISTINCT`) is load-bearing: a plain composite index treats NULLs as distinct, so two worktree-less claims off one shared clone would both insert and re-open the commingling hole. A `23505` from either index generation surfaces as `session_already_has_bound_claim` (task 1002589), never the false `ALREADY_CLAIMED`.
41
+ > **Amended 2026-08-06 (task 1002570 / `core_204`).** The index as shipped was *stricter* than the worktree-scoped guard above: keyed on `creator_session_id` alone, it refused at the DB layer the second-worktree parallel claim the guard deliberately allows — breaking the many-sessions-per-builder norm this ADR set out to preserve. `migrations/core_204_rekey_active_claim_per_session_worktree.sql` re-keys it to `(creator_session_id, COALESCE(worktree_name, ''))` under the name `uniq_active_claim_per_session_worktree`, same partial predicate, so the backstop now enforces exactly the guard's boundary. The `COALESCE` fold (rather than PG15's `NULLS NOT DISTINCT`) is load-bearing: a plain composite index treats NULLs as distinct, so two worktree-less claims off one shared clone would both insert and re-open the commingling hole. A `23505` from either index generation surfaces as `session_already_has_bound_claim` (task 1002589), never the false `ALREADY_CLAIMED`.
42
42
 
43
43
  > **Amended 2026-08-11 (task 1002522) — the guard and the index now fold tree identity identically.** `core_204`'s key folds `NULL` and `''` together (`COALESCE(worktree_name, '')`); the guard compared raw values, where `'' !== null`. So a claim sent with `worktree_name: ""` (the route caps the length but never required non-empty) was waved through beside a worktree-less claim and *then* refused by the index — a `23505` on a task nobody had taken. `db.foldWorktreeName` is now the single normalization: it folds empty/whitespace-only to `NULL` and trims, and it is applied at **every ingest point** (`claimTask`, `claimTasksBatch`'s prefix, and `shouldRefuseSessionClaim`), so stored names are always trimmed-or-`NULL` and the guard's comparison of stored rows is exact by construction. Pinned DB-free in `tests/one_active_claim_per_session.mjs`.
44
44
  >
@@ -4,7 +4,7 @@
4
4
  - **Status:** Accepted
5
5
  - **Track:** `internal` (GDS / economy)
6
6
  - **Task:** [#1672](https://example.com/builders#/task/1672)
7
- - **Relates to:** [ADR 0023](<redacted>.md) (per-task kind multipliers), [ADR 0054](<redacted>.md) (cost-plus session reward)
7
+ - **Relates to:** [ADR 0023](0023-kind-multipliers-and-idea-bonus.md) (per-task kind multipliers), [ADR 0054](0054-session-token-reward-cost-plus.md) (cost-plus session reward)
8
8
 
9
9
  ## Context — the gap
10
10
 
@@ -19,10 +19,10 @@ per-task stream.
19
19
  There are **two reward streams** a builder accrues to `builders.total_credits`:
20
20
 
21
21
  1. **Per-task** — `reason='task.confirmed'`, the kind-multiplied `credits_reward`
22
- ([ADR 0023](<redacted>.md)). This is the stream
22
+ ([ADR 0023](0023-kind-multipliers-and-idea-bonus.md)). This is the stream
23
23
  that paid 0 for the affected tasks.
24
24
  2. **Cost-plus session** — `reason='session.token_reward'`,
25
- `round(true_cost_usd × 1.20)` per shipped session ([ADR 0054](<redacted>.md)).
25
+ `round(true_cost_usd × 1.20)` per shipped session ([ADR 0054](0054-session-token-reward-cost-plus.md)).
26
26
  This was supposed to backstop the per-task gap, but it pays **~0 for dev-box /
27
27
  CI agent ships**: those sessions upload no priced model usage, so
28
28
  `priceModelUsage` returns ~$0 and the reward rounds to 0. So for exactly the
@@ -85,7 +85,7 @@ self-describing convention of the other credit_log writers (migration 031).
85
85
  safe to ship inert.
86
86
  - **`--apply` requires ALL of:** the explicit `--apply` flag; an **Archon rank**
87
87
  verified server-side via `GET /api/gds/me` (the script refuses for any other
88
- rank — markdown/local edits cannot grant authority, [ADR 0016](<redacted>.md));
88
+ rank — markdown/local edits cannot grant authority, [ADR 0016](0016-trust-boundary-server-enforced-permissions.md));
89
89
  and an **interactive y/N confirmation** at the terminal.
90
90
  - **Never acts on import/require.** All work is inside `main()`, gated on
91
91
  `require.main === module`. Importing the file (the unit test does) touches no DB
@@ -4,13 +4,13 @@
4
4
  - **Date:** 2026-06-30
5
5
  - **Track:** internal
6
6
  - **Task:** [#1210](https://example.com/builders#/task/1210) (V4.R71) — the publishable-subtree carve-out + the public mirror repo.
7
- - **Builds on:** [ADR 0065](<redacted>.md) §4 (the AGPL decision + the prose publish boundary this task makes executable), [ADR 0062](<redacted>.md) §1 (the portable-core / host-instance / feature-module cut-line), [ADR 0043](<redacted>.md) (`PROTECTED_GLOBS`), [ADR 0058](<redacted>.md) (the gate-review "no allow-by-omission" doctrine this borrows).
7
+ - **Builds on:** [ADR 0065](0065-agpl-nonprofit-ai-first-governance.md) §4 (the AGPL decision + the prose publish boundary this task makes executable), [ADR 0062](0062-medusa-instance-model-decoupling.md) §1 (the portable-core / host-instance / feature-module cut-line), [ADR 0043](0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md) (`PROTECTED_GLOBS`), [ADR 0058](0058-automatic-gate-surface-gatekeeper.md) (the gate-review "no allow-by-omission" doctrine this borrows).
8
8
  - **Gates:** [#1211](https://example.com/builders#/task/1211) (R72 — the delayed export pipeline, which *consumes* this manifest) and [#1212](https://example.com/builders#/task/1212) (R73 — the lineage + no-leak proof, which *asserts against* it).
9
- - **Referenced by:** [ADR 0108](<redacted>.md) §2 — `isPublishable()` stays the single definition of "the core," now read as "the core npm package's contents," not just the mirror/package-core tarball subtree.
9
+ - **Referenced by:** [ADR 0108](0108-instance-composition-configurable-root.md) §2 — `isPublishable()` stays the single definition of "the core," now read as "the core npm package's contents," not just the mirror/package-core tarball subtree.
10
10
 
11
11
  ## Context
12
12
 
13
- [ADR 0065](<redacted>.md) §4 defined the public-mirror boundary in **prose**: publish the portable methodology core + the platform + the neutral (customer-0) branding + sanitized docs; never publish secrets, instance identity literals, prod infra, or the customer-1 (Example) game/art content. That prose is the policy. But R72 (the generated, redacted, 6-month-delayed export) and R73 (the no-leak proof) need the boundary as an **executable, drift-proof artifact** — not a paragraph a future builder has to re-interpret per file.
13
+ [ADR 0065](0065-agpl-nonprofit-ai-first-governance.md) §4 defined the public-mirror boundary in **prose**: publish the portable methodology core + the platform + the neutral (customer-0) branding + sanitized docs; never publish secrets, instance identity literals, prod infra, or the customer-1 (Example) game/art content. That prose is the policy. But R72 (the generated, redacted, 6-month-delayed export) and R73 (the no-leak proof) need the boundary as an **executable, drift-proof artifact** — not a paragraph a future builder has to re-interpret per file.
14
14
 
15
15
  The task instructs reusing the existing `PROTECTED_GLOBS` / `SENSITIVE_DOC_GLOBS` inventories. The catch: **those inventories are necessary but not sufficient, and `PROTECTED_GLOBS` is emphatically not a denylist.**
16
16
 
@@ -4,7 +4,7 @@
4
4
  - **Date:** 2026-06-30
5
5
  - **Track:** internal
6
6
  - **Task:** [#1211](https://example.com/builders#/task/1211) (V4.R72) — the delayed export pipeline + source-level redaction. The XL long-pole of GDS-V4 criterion **C9** (Cloud Bongos is open, free, and protected from capture).
7
- - **Builds on:** [ADR 0098](<redacted>.md) (the publishable-subtree manifest this pipeline *consumes*), [ADR 0065](<redacted>.md) §4 (the publish boundary + the "redact instance literals" mandate), [ADR 0022](0022-secrets-policy.md) (the secret scrubber this reuses), [ADR 0029](<redacted>.md) / [#741](https://example.com/builders#/task/741) (the scoped-deploy-key mirror-push precedent).
7
+ - **Builds on:** [ADR 0098](0098-public-mirror-publish-manifest.md) (the publishable-subtree manifest this pipeline *consumes*), [ADR 0065](0065-agpl-nonprofit-ai-first-governance.md) §4 (the publish boundary + the "redact instance literals" mandate), [ADR 0022](0022-secrets-policy.md) (the secret scrubber this reuses), [ADR 0029](0029-status-page-outage-resilience.md) / [#741](https://example.com/builders#/task/741) (the scoped-deploy-key mirror-push precedent).
8
8
  - **Gates:** [#1212](https://example.com/builders#/task/1212) (R73 — the lineage + no-leak proof) reuses this pipeline's `findLeaks` + `.mirror-provenance.json`.
9
9
 
10
10
  ## Context
@@ -1,14 +1,14 @@
1
1
  # ADR 0100 — Two-repo instance model: a project consumes Cloud Bongos as a versioned platform
2
2
 
3
- - **Status:** Accepted — **§§1–2 superseded by [ADR 0103](<redacted>.md)** (2026-07-02 owner review: core-first extraction, and Example *does* split rather than staying coupled). §3 (per-repo GDS) and §4 (conditional mirror) remain in force.
3
+ - **Status:** Accepted — **§§1–2 superseded by [ADR 0103](0103-core-first-extraction-cloud-bongos-trunk.md)** (2026-07-02 owner review: core-first extraction, and Example *does* split rather than staying coupled). §3 (per-repo GDS) and §4 (conditional mirror) remain in force.
4
4
  - **Date:** 2026-07-01
5
5
  - **Track:** internal
6
6
  - **Task:** [#1607](https://example.com/builders#/task/1607) (BV1.R77) — the decision gate this ADR resolves.
7
- - **Decides:** the physical-repo topology that [ADR 0062](<redacted>.md) §10 left open and [ADR 0065](<redacted>.md) §4 answered for the *open-source* surface only.
8
- - **Builds on:** [ADR 0062](<redacted>.md) §1 (portable-core / host-instance / feature-module cut-line), [ADR 0064](<redacted>.md) (the Cloud Bongos rename), [ADR 0083](<redacted>.md) + [ADR 0093](<redacted>.md) (the module boundary + completed core-carve that make the split mechanical), [ADR 0098](<redacted>.md) (`isPublishable()` — the executable definition of "what is the core"), [ADR 0099](<redacted>.md) (the delayed mirror), [ADR 0015](<redacted>.md) (dependencies).
7
+ - **Decides:** the physical-repo topology that [ADR 0062](0062-medusa-instance-model-decoupling.md) §10 left open and [ADR 0065](0065-agpl-nonprofit-ai-first-governance.md) §4 answered for the *open-source* surface only.
8
+ - **Builds on:** [ADR 0062](0062-medusa-instance-model-decoupling.md) §1 (portable-core / host-instance / feature-module cut-line), [ADR 0064](0064-rename-medusa-to-cloud-bongos.md) (the Cloud Bongos rename), [ADR 0083](0083-modular-architecture-strangler-build-plan.md) + [ADR 0093](0093-tranche-2-core-carve-sequence.md) (the module boundary + completed core-carve that make the split mechanical), [ADR 0098](0098-public-mirror-publish-manifest.md) (`isPublishable()` — the executable definition of "what is the core"), [ADR 0099](0099-delayed-redacted-mirror-export.md) (the delayed mirror), [ADR 0015](0015-task-dependencies-and-auto-promotion.md) (dependencies).
9
9
  - **Amends:** ADR 0062 §10 (chooses a physical topology it left open); ADR 0065 §4 (puts the generated mirror on a *conditional* retirement path — §4 below).
10
10
  - **Seeds:** GDS-V4 R84 → R85 → R86 (package the core → stand Mercury up on a pinned core → make `bongos upgrade` a real update channel).
11
- - **Amended by:** [ADR 0108](<redacted>.md) — resolves §1's mechanism-neutral "installs a pinned core + layers its own content on top" into configurable-root (the core as a `node_modules` dependency + an injected instance-root), not clone-and-layer.
11
+ - **Amended by:** [ADR 0108](0108-instance-composition-configurable-root.md) — resolves §1's mechanism-neutral "installs a pinned core + layers its own content on top" into configurable-root (the core as a `node_modules` dependency + an injected instance-root), not clone-and-layer.
12
12
 
13
13
  ## Context
14
14
 
@@ -37,7 +37,7 @@ We build the smallest slice that stands **Mercury up as customer 2** in its own
37
37
 
38
38
  ### 3. GDS topology: per-repo.
39
39
 
40
- Each project runs its **own** GDS — its own database, tasks, builders, versions, and credits. Mercury's builders never see Cloud Bongos platform tasks and vice versa; that separation of work is the point. A single shared GDS across repos is **rejected**: it re-couples exactly what the split exists to separate, and widens the trust/identity surface (ADR 0062 §5, [ADR 0016](<redacted>.md)). The cost — more than one GDS database to operate — is accepted as the price of clean separation.
40
+ Each project runs its **own** GDS — its own database, tasks, builders, versions, and credits. Mercury's builders never see Cloud Bongos platform tasks and vice versa; that separation of work is the point. A single shared GDS across repos is **rejected**: it re-couples exactly what the split exists to separate, and widens the trust/identity surface (ADR 0062 §5, [ADR 0016](0016-trust-boundary-server-enforced-permissions.md)). The cost — more than one GDS database to operate — is accepted as the price of clean separation.
41
41
 
42
42
  ### 4. The generated mirror (ADR 0065 §4) is retained now, retired conditionally.
43
43
 
@@ -55,6 +55,6 @@ The delayed redacted mirror (ADR 0099) stays the public open-source surface **un
55
55
  - **P4 and P5 become buildable.** The R84 → R85 → R86 spine delivers Mercury (P5) and the update channel (P4). R84 auto-promotes to `ready` when this gate ([#1607](https://example.com/builders#/task/1607)) ships (ADR 0015).
56
56
  - **A permanent per-project upgrade step** replaces free updates — the recurring cost the single-repo model avoided, now explicit and owned per project.
57
57
  - **A larger operational footprint** (more repos, CI, at least one more GDS database) — weighed against the $5k budget and mitigated by building incrementally, driven by Mercury, not ahead of it.
58
- - **The module boundary is now load-bearing across a repo gap.** A two-repo consumer amplifies any core↔host leak into a cross-repo break, so the ADR 0062 Path-C fitness functions ([ADR 0061](<redacted>.md)) matter more, not less.
58
+ - **The module boundary is now load-bearing across a repo gap.** A two-repo consumer amplifies any core↔host leak into a cross-repo break, so the ADR 0062 Path-C fitness functions ([ADR 0061](0061-context-layer-decomposition.md)) matter more, not less.
59
59
  - **Example is unaffected today** — single-checkout reference instance, free core updates, until a separate future decision.
60
60
  - **No new criterion is minted by this ADR.** The seeded tasks are a distinct "done-when" from GDS-V4 C8 (single-checkout configurable instance); whether to track them under a new criterion is left to the owner (see the shipping task's notes).
@@ -4,7 +4,7 @@
4
4
  - **Date:** 2026-07-01
5
5
  - **Deciders:** Lars (Archon), Claude
6
6
 
7
- **Builds on:** [ADR 0086](<redacted>.md) (the goal hierarchy — this is its deferred Phase 5), [ADR 0043](<redacted>.md) (the protected-path hard floor this amends), [ADR 0016](<redacted>.md) (server-enforced permissions), [ADR 0084](<redacted>.md) (auto-derived rank floor), [ADR 0024](<redacted>.md) (the grader subagent harness the judge reuses), [ADR 0058](<redacted>.md) (gate-review + owner approval), [ADR 0054](<redacted>.md) (per-task cost-plus reward), [ADR 0023](<redacted>.md) (credit multipliers), [ADR 0027](<redacted>.md) (BFG contribution signals).
7
+ **Builds on:** [ADR 0086](0086-goal-scoped-work-hierarchy.md) (the goal hierarchy — this is its deferred Phase 5), [ADR 0043](0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md) (the protected-path hard floor this amends), [ADR 0016](0016-trust-boundary-server-enforced-permissions.md) (server-enforced permissions), [ADR 0084](0084-auto-derived-per-task-rank-floor.md) (auto-derived rank floor), [ADR 0024](0024-multi-agent-system-architecture.md) (the grader subagent harness the judge reuses), [ADR 0058](0058-automatic-gate-surface-gatekeeper.md) (gate-review + owner approval), [ADR 0054](0054-session-token-reward-cost-plus.md) (per-task cost-plus reward), [ADR 0023](0023-kind-multipliers-and-idea-bonus.md) (credit multipliers), [ADR 0027](0027-bfg-session-inefficiency-evaluator.md) (BFG contribution signals).
8
8
 
9
9
  **Track:** `internal` (GDS / methodology — a Cloud Bongos platform capability).
10
10
 
@@ -12,14 +12,14 @@
12
12
 
13
13
  ## Context
14
14
 
15
- [ADR 0086](<redacted>.md) shipped the goal-scoped work hierarchy — Phases 1–4 (BV1.R54–R64): the module-scope map, the configurable hierarchy preset, the `goals` tier, the bounded task-authoring gate (`POST /goals/:id/tasks`), the polymorphic dependency edge, and the criterion-auto-flag → `/goal-review` → goal-auto-achieve lifecycle. Those phases are **live and defended**: a member's authoring is bounded by the deterministic scope-subset wall, the protected-path block (the single [ADR 0043](<redacted>.md) roster), and the auto-derived rank floor ([ADR 0084](<redacted>.md)), with the ship-time gates authoritative on the real diff (BV1.R61 pins + abuse matrix).
15
+ [ADR 0086](0086-goal-scoped-work-hierarchy.md) shipped the goal-scoped work hierarchy — Phases 1–4 (BV1.R54–R64): the module-scope map, the configurable hierarchy preset, the `goals` tier, the bounded task-authoring gate (`POST /goals/:id/tasks`), the polymorphic dependency edge, and the criterion-auto-flag → `/goal-review` → goal-auto-achieve lifecycle. Those phases are **live and defended**: a member's authoring is bounded by the deterministic scope-subset wall, the protected-path block (the single [ADR 0043](0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md) roster), and the auto-derived rank floor ([ADR 0084](0084-auto-derived-per-task-rank-floor.md)), with the ship-time gates authoritative on the real diff (BV1.R61 pins + abuse matrix).
16
16
 
17
17
  ADR 0086 **explicitly deferred three non-decisions** to "its own security-reviewed ADR," because each is a matter of *judgment* or a *widening of the trust boundary* rather than the deterministic wall that shipped first. This is that ADR. It records the design and the security review; the build is a future cluster (filed below). It changes **no enforcement code**.
18
18
 
19
19
  The three deferred items:
20
20
 
21
21
  1. **An AI relevance / anti-hack judge** at goal-task create/claim time — advisory-first, never hard-blocking a newcomer.
22
- 2. **Sub-Metic membership inside protected-scope goals** — which amends the [ADR 0043](<redacted>.md) hard floor and requires the ship-time gates to become goal-aware.
22
+ 2. **Sub-Metic membership inside protected-scope goals** — which amends the [ADR 0043](0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md) hard floor and requires the ship-time gates to become goal-aware.
23
23
  3. **The goal-reward model** — does *achieving a goal* earn anything beyond the per-task cost-plus already paid, and how does any reward split among a goal's members.
24
24
 
25
25
  ---
@@ -32,7 +32,7 @@ We adopt a three-part design. Each part is an independent, revertible build task
32
32
 
33
33
  **What.** At goal-task **create** (`POST /goals/:id/tasks`) and, optionally, at **claim**, an AI judge assesses: *is this task genuinely in service of the goal, or is it scope-gaming / a hack attempt that slipped the deterministic gate?* (e.g. a task whose declared `touches[]` sit inside scope but whose title/description reveal an intent to weaken the very wall that admitted it).
34
34
 
35
- **How.** Reuse the existing grader subagent harness ([ADR 0024](<redacted>.md) — the adversarial worker panel + `cascade-dispatch`), NOT a new harness. Cheapest model first (the cascade ceiling), escalate only on ambiguity; budget-aware (the $5k constraint).
35
+ **How.** Reuse the existing grader subagent harness ([ADR 0024](0024-multi-agent-system-architecture.md) — the adversarial worker panel + `cascade-dispatch`), NOT a new harness. Cheapest model first (the cascade ceiling), escalate only on ambiguity; budget-aware (the $5k constraint).
36
36
 
37
37
  **Advisory-first — the load-bearing rule.** The judge **flags for a Metic to review**; it **never hard-blocks a newcomer at create time**. The deterministic scope-subset + protected-path + auto-rank-floor gates remain the **only hard walls**. The judge is a soft, human-escalated signal that surfaces in a review queue mirroring the `/goal-review` / `/idea-triage` cadence. High-confidence or repeat gaming may *raise friction* (e.g. require a Metic co-sign before the authored task becomes claimable) but never a silent, opaque AI "no."
38
38
 
@@ -40,25 +40,25 @@ We adopt a three-part design. Each part is an independent, revertible build task
40
40
 
41
41
  ### Part 2 — Sub-Metic membership in protected-scope goals (amends ADR 0043)
42
42
 
43
- **Today (the conservative default that stays until this ships).** A protected-scope goal requires a **Metic+** holder ([ADR 0086](<redacted>.md) Deferred); a sub-Metic cannot author/claim/ship work touching the protected core even inside a goal — the [ADR 0043](<redacted>.md) hard floor blocks it at the pre-push hook, the grader `permissionPathPrePass`, the `gate-review` ESCALATE floor, and the post-push `main-audit`.
43
+ **Today (the conservative default that stays until this ships).** A protected-scope goal requires a **Metic+** holder ([ADR 0086](0086-goal-scoped-work-hierarchy.md) Deferred); a sub-Metic cannot author/claim/ship work touching the protected core even inside a goal — the [ADR 0043](0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md) hard floor blocks it at the pre-push hook, the grader `permissionPathPrePass`, the `gate-review` ESCALATE floor, and the post-push `main-audit`.
44
44
 
45
45
  **The amendment.** An **Archon** may admit a sub-Metic to a protected-scope goal under a **tightly-scoped, Archon-granted membership**, letting them author + claim + ship work touching a **narrow, explicitly-enumerated** protected surface — but **only with the ship-time gates made goal-aware**.
46
46
 
47
47
  **Security review (the crux).** The amendment is a genuine **widening of the trust boundary**, so it is purely *additive* permission, fail-closed, gated on an explicit grant:
48
48
 
49
49
  - **Goal-aware ship-time gates.** A sub-Metic diff touching a protected path is allowed **only if** all hold, checked server-side against the **real committed diff** (not the advisory create-time `touches[]`): (a) the author is a **member** of a protected-scope goal, (b) the membership was **Archon-granted** and audit-logged, and (c) every protected path the diff touches is **within that goal's enumerated protected scope**. Any protected-path hit **outside** a live matching grant → the ADR-0043 floor bites unchanged.
50
- - **Never self-granted.** Protected scope is Archon-set at goal creation ([ADR 0086](<redacted>.md) §4); membership admission to a protected-scope goal is the Archon-only `POST /goals/:id/members`. The sub-Metic can *ask*, never grant.
50
+ - **Never self-granted.** Protected scope is Archon-set at goal creation ([ADR 0086](0086-goal-scoped-work-hierarchy.md) §4); membership admission to a protected-scope goal is the Archon-only `POST /goals/:id/members`. The sub-Metic can *ask*, never grant.
51
51
  - **Blast-radius containment.** The member can touch only the goal's enumerated protected paths; the grader, `gate-review`, and `main-audit` still run on the real diff; the Archon can revoke membership; the Part-1 relevance judge watches for gaming; the `main-audit` flags any sub-Metic protected-path commit **not** covered by a live goal grant.
52
- - **Ships last, gated.** This is the highest-risk change. Its build task carries an explicit **owner Gate approval** ([ADR 0058](<redacted>.md)) and a **red-team pass** before merge.
52
+ - **Ships last, gated.** This is the highest-risk change. Its build task carries an explicit **owner Gate approval** ([ADR 0058](0058-automatic-gate-surface-gatekeeper.md)) and a **red-team pass** before merge.
53
53
 
54
54
  ### Part 3 — The goal-reward model
55
55
 
56
- **Question.** Does *achieving* a goal earn anything beyond the per-task cost-plus already paid ([ADR 0054](<redacted>.md)), and how does any reward split among members?
56
+ **Question.** Does *achieving* a goal earn anything beyond the per-task cost-plus already paid ([ADR 0054](0054-session-token-reward-cost-plus.md)), and how does any reward split among members?
57
57
 
58
58
  **Leaning (recorded; the money is owner-gated).**
59
59
 
60
60
  - **Karma by default, not example.** Example are real money (1 = $1) against a tight $5k budget, and a goal is a *coordination construct*, not a unit of billable work — the per-task cost-plus already pays for the actual shipping. A goal-achievement **karma** bonus recognizes the collaboration with **no new monetary spend**.
61
- - **Contribution-weighted, not membership-flat.** The bonus tracks **who actually shipped tasks under the goal** (reuse the shipped-task/credit attribution + the BFG contribution signals, [ADR 0027](<redacted>.md)), never mere membership — a flat per-member reward would incentivize goal-squatting. A `lead` may take a small coordination share.
61
+ - **Contribution-weighted, not membership-flat.** The bonus tracks **who actually shipped tasks under the goal** (reuse the shipped-task/credit attribution + the BFG contribution signals, [ADR 0027](0027-bfg-session-inefficiency-evaluator.md)), never mere membership — a flat per-member reward would incentivize goal-squatting. A `lead` may take a small coordination share.
62
62
  - **On achievement, not creation.** The reward attaches when a goal is **achieved** (all criteria satisfied + confirmed via `/goal-review`), never on creation or joining — which, with contribution-weighting and the Metic confirmation, closes the free-rider and squatting surfaces.
63
63
 
64
64
  **Owner-gated.** Whether *any* monetary (example) component attaches, and the exact karma amount/curve, is **Lars's call at build time** — money is owner authority. This ADR records the budget-safe default (karma-only, contribution-weighted); the build task (P5.3) surfaces the money decision explicitly rather than presuming it.
@@ -1,6 +1,6 @@
1
1
  # ADR 0102 — Finish bounding the kernel: LLM-cost as kernel-adjacent infra, identity/auth carve, flip Check 12 to ENFORCING
2
2
 
3
- **Status:** Accepted (2026-07-02) · **Supersedes the WARN-mode deferral in** [ADR 0091](<redacted>.md) §1,§3 / [ADR 0093](<redacted>.md)
3
+ **Status:** Accepted (2026-07-02) · **Supersedes the WARN-mode deferral in** [ADR 0091](0091-bounding-the-kernel-and-db-carve.md) §1,§3 / [ADR 0093](0093-tranche-2-core-carve-sequence.md)
4
4
 
5
5
  ## Context
6
6
 
@@ -4,14 +4,14 @@
4
4
  - **Date:** 2026-07-02
5
5
  - **Track:** internal
6
6
  - **Task:** [#1726](https://example.com/builders#/task/1726) (BV1.R87) — the owner-review decision this ADR records.
7
- - **Supersedes:** [ADR 0100](<redacted>.md) §§1–2 (the Mercury-first sequence and the "Example stays coupled until a later decision" plank). **Retains ADR 0100 §3** (per-repo GDS) **and §4** (the generated mirror, retired conditionally).
8
- - **Builds on:** [ADR 0062](<redacted>.md) §1 (portable-core / host-instance cut-line), [ADR 0098](<redacted>.md) (`isPublishable()` — the executable definition of "the core"), [ADR 0100](<redacted>.md) §§3–4 + its R84 (`bongos package-core`, shipped), [ADR 0065](<redacted>.md) (AGPL / non-profit / AI-first).
7
+ - **Supersedes:** [ADR 0100](0100-two-repo-instance-model.md) §§1–2 (the Mercury-first sequence and the "Example stays coupled until a later decision" plank). **Retains ADR 0100 §3** (per-repo GDS) **and §4** (the generated mirror, retired conditionally).
8
+ - **Builds on:** [ADR 0062](0062-medusa-instance-model-decoupling.md) §1 (portable-core / host-instance cut-line), [ADR 0098](0098-public-mirror-publish-manifest.md) (`isPublishable()` — the executable definition of "the core"), [ADR 0100](0100-two-repo-instance-model.md) §§3–4 + its R84 (`bongos package-core`, shipped), [ADR 0065](0065-agpl-nonprofit-ai-first-governance.md) (AGPL / non-profit / AI-first).
9
9
  - **Reshapes:** the R84 → R86 spine — inserts a core-extraction step before Mercury (R85) and adds a committed Example-split step (see §4).
10
- - **Amended by:** [ADR 0108](<redacted>.md) — resolves §2's mechanism-neutral consumer-repo shape ("installs a pinned core version and layers its own content on top") into configurable-root.
10
+ - **Amended by:** [ADR 0108](0108-instance-composition-configurable-root.md) — resolves §2's mechanism-neutral consumer-repo shape ("installs a pinned core version and layers its own content on top") into configurable-root.
11
11
 
12
12
  ## Context
13
13
 
14
- [ADR 0100](<redacted>.md) was accepted 2026-07-01. It chose two repos, but sequenced **Mercury** (a greenfield Example instance) as the *first* two-repo consumer and deliberately left **Example coupled** as the single-checkout reference instance "until a later, separate decision" — on the reasoning that moving a live product before the update channel is proven buys risk for no gain.
14
+ [ADR 0100](0100-two-repo-instance-model.md) was accepted 2026-07-01. It chose two repos, but sequenced **Mercury** (a greenfield Example instance) as the *first* two-repo consumer and deliberately left **Example coupled** as the single-checkout reference instance "until a later, separate decision" — on the reasoning that moving a live product before the update channel is proven buys risk for no gain.
15
15
 
16
16
  A next-day owner review (2026-07-02, task [#1726](https://example.com/builders#/task/1726)) reopened planks 1 and 2. The owner's position, stated directly:
17
17
 
@@ -26,7 +26,7 @@ A next-day owner review (2026-07-02, task [#1726](https://example.com/builders#/
26
26
 
27
27
  ### 1. Core-first extraction — the core gets its own repo, first.
28
28
 
29
- The Cloud Bongos **core** — the `isPublishable()` subtree ([ADR 0098](<redacted>.md)): portable methodology + platform + GDS engine + neutral branding — is extracted into its **own standalone repository** with **fresh history**, AGPL/public-ready. That repo **is** Cloud Bongos, the product. This is the *first* physical move, ahead of standing up any consumer. R84's `bongos package-core` is reused, not discarded: the subtree it already packages is exactly what gets extracted.
29
+ The Cloud Bongos **core** — the `isPublishable()` subtree ([ADR 0098](0098-public-mirror-publish-manifest.md)): portable methodology + platform + GDS engine + neutral branding — is extracted into its **own standalone repository** with **fresh history**, AGPL/public-ready. That repo **is** Cloud Bongos, the product. This is the *first* physical move, ahead of standing up any consumer. R84's `bongos package-core` is reused, not discarded: the subtree it already packages is exactly what gets extracted.
30
30
 
31
31
  ### 2. Example splits — it is not the permanently-coupled reference instance.
32
32
 
@@ -34,7 +34,7 @@ Example becomes a **consumer repo** that installs a pinned core version and laye
34
34
 
35
35
  ### 3. Retained from ADR 0100: per-repo GDS (§3) and the conditional mirror (§4).
36
36
 
37
- Each repo runs its own GDS (own DB, tasks, builders, credits) — a shared GDS is still rejected. The delayed redacted mirror ([ADR 0099](<redacted>.md)) stays the public surface **until** the core is physically extracted — under this ADR that trigger now fires *first*, so the mirror's retirement/repointing is re-evaluated at extraction time rather than after a Mercury detour.
37
+ Each repo runs its own GDS (own DB, tasks, builders, credits) — a shared GDS is still rejected. The delayed redacted mirror ([ADR 0099](0099-delayed-redacted-mirror-export.md)) stays the public surface **until** the core is physically extracted — under this ADR that trigger now fires *first*, so the mirror's retirement/repointing is re-evaluated at extraction time rather than after a Mercury detour.
38
38
 
39
39
  ### 4. Reshaped spine.
40
40
 
@@ -4,13 +4,13 @@
4
4
  - **Date:** 2026-07-02
5
5
  - **Deciders:** Lars (owner) · Claude (Opus 4.8)
6
6
  - **Track:** `internal` (Cloud Bongos)
7
- - **Relates to:** [ADR 0064](<redacted>.md) (Medusa → Cloud Bongos), [ADR 0062](<redacted>.md) (core ↔ host / instance model), [ADR 0087](<redacted>.md) (the Bongos desktop app absorbs Dev Box), [ADR 0095](<redacted>.md) (grep-over-embeddings — retires the C1 recall arm). Executed by migration `<redacted>.sql` under task [#1709](https://example.com/builders#/task/1709).
7
+ - **Relates to:** [ADR 0064](0064-rename-medusa-to-cloud-bongos.md) (Medusa → Cloud Bongos), [ADR 0062](0062-medusa-instance-model-decoupling.md) (core ↔ host / instance model), [ADR 0087](0087-bongos-app-architecture-and-handoff-contract.md) (the Bongos desktop app absorbs Dev Box), [ADR 0095](0095-cross-agent-context-management.md) (grep-over-embeddings — retires the C1 recall arm). Executed by migration `<redacted>.sql` under task [#1709](https://example.com/builders#/task/1709).
8
8
 
9
9
  ## Context
10
10
 
11
- The internal track carried **two live versions at once** — `GDS-V4` (534 tasks, ~114 open) and `BONGOS-V1` (130 tasks, ~14 open) — with no clean divide between them. Both were, in practice, Cloud Bongos platform work. Worse, `BONGOS-V1` was *titled* "Bongos App — V1" but its goals were platform concerns (core modularization, the animation module), while the actual **Bongos desktop app** (`bongos-app/` — the feedback-capture tool that also absorbs the Dev Box switch, [ADR 0087](<redacted>.md)) had its tasks scattered across *both* versions. Two parallel internal versions + an app/platform naming inversion made "what's the live internal version?" and "is this app work or platform work?" both unanswerable from the ledger.
11
+ The internal track carried **two live versions at once** — `GDS-V4` (534 tasks, ~114 open) and `BONGOS-V1` (130 tasks, ~14 open) — with no clean divide between them. Both were, in practice, Cloud Bongos platform work. Worse, `BONGOS-V1` was *titled* "Bongos App — V1" but its goals were platform concerns (core modularization, the animation module), while the actual **Bongos desktop app** (`bongos-app/` — the feedback-capture tool that also absorbs the Dev Box switch, [ADR 0087](0087-bongos-app-architecture-and-handoff-contract.md)) had its tasks scattered across *both* versions. Two parallel internal versions + an app/platform naming inversion made "what's the live internal version?" and "is this app work or platform work?" both unanswerable from the ledger.
12
12
 
13
- A task-by-task triage of GDS-V4's 114 open tasks (with the owner, 2026-07-02) also found dead work: the C1 semantic-search/embeddings arm (superseded by [ADR 0095](<redacted>.md)'s decision that agents navigate by grep, not embeddings), old V3-era grader tasks (superseded by the shipped 4-worker grader panel + [ADR 0089](<redacted>.md)), and the T-NNN task-ref migration (the hall-link convention already works and is enforced).
13
+ A task-by-task triage of GDS-V4's 114 open tasks (with the owner, 2026-07-02) also found dead work: the C1 semantic-search/embeddings arm (superseded by [ADR 0095](0095-cross-agent-context-management.md)'s decision that agents navigate by grep, not embeddings), old V3-era grader tasks (superseded by the shipped 4-worker grader panel + [ADR 0089](0089-modular-multi-model-adversarial-grader.md)), and the T-NNN task-ref migration (the hall-link convention already works and is enforced).
14
14
 
15
15
  ## Decision
16
16
 
@@ -4,7 +4,7 @@
4
4
  - **Date:** 2026-07-02
5
5
  - **Deciders:** Lars (owner) · Claude (Opus 4.8)
6
6
  - **Track:** `internal` (Cloud Bongos)
7
- - **Relates to:** [ADR 0016](<redacted>.md) (server-enforced permissions / trust boundary — the load-bearing rationale). Completes task [#1051](https://example.com/builders#/task/1051) (the narrow named-script allow-list, from the task-[#1027](https://example.com/builders#/task/1027) nightmare) and complements task [#1251](https://example.com/builders#/task/1251) (default dev boxes to `bypassPermissions`). Executed under task [#1716](https://example.com/builders#/task/1716).
7
+ - **Relates to:** [ADR 0016](0016-trust-boundary-server-enforced-permissions.md) (server-enforced permissions / trust boundary — the load-bearing rationale). Completes task [#1051](https://example.com/builders#/task/1051) (the narrow named-script allow-list, from the task-[#1027](https://example.com/builders#/task/1027) nightmare) and complements task [#1251](https://example.com/builders#/task/1251) (default dev boxes to `bypassPermissions`). Executed under task [#1716](https://example.com/builders#/task/1716).
8
8
 
9
9
  ## Context
10
10
 
@@ -27,13 +27,13 @@ The owner chose **"trust the whole channel"** over a narrower "reads + a few spe
27
27
 
28
28
  ## Why this is safe (the crux)
29
29
 
30
- The auto-mode classifier was **never the security gate here** — the **GDS server is**, and it is stricter. `builders.rank` is checked on every request, per-request, with no caching ([ADR 0016](<redacted>.md)). Therefore:
30
+ The auto-mode classifier was **never the security gate here** — the **GDS server is**, and it is stricter. `builders.rank` is checked on every request, per-request, with no caching ([ADR 0016](0016-trust-boundary-server-enforced-permissions.md)). Therefore:
31
31
 
32
32
  - Allow-listing `api.js` grants an autonomous builder **nothing beyond what its rank already permits**. It only removes a redundant, weaker, and — as observed — **wrong** harness prompt that mistook a sanctioned idea-triage session for scope creep.
33
33
  - `api.js` can only reach `/api/gds/*` on the configured API base (via `cli-lib.apiCall`); it is **not** a general HTTP or shell escape hatch. Blast radius = "the caller's rank-permitted GDS operations, without a per-call prompt" — which is exactly the design intent of an autonomous builder.
34
34
  - **Scope-discipline** ("don't wander off the claim") is owned by the methodology's per-builder **`wandering`** knob ([`modules/builder-settings/wandering-prefs.js`](../../modules/builder-settings/wandering-prefs.js)), which is the correct layer — a harness classifier can't tell whether promoting an idea *is* the task.
35
35
 
36
- Editing this allow-list grants no authority; sub-Metic authorship limits, protected-path gates, and rank checks all remain server-enforced ([ADR 0016](<redacted>.md)).
36
+ Editing this allow-list grants no authority; sub-Metic authorship limits, protected-path gates, and rank checks all remain server-enforced ([ADR 0016](0016-trust-boundary-server-enforced-permissions.md)).
37
37
 
38
38
  ## Consequences
39
39
 
@@ -4,8 +4,8 @@
4
4
  - **Date:** 2026-07-02
5
5
  - **Deciders:** Lars (owner) · Claude (Opus 4.8)
6
6
  - **Track:** `internal` (Cloud Bongos)
7
- - **Relates to:** [ADR 0062](<redacted>.md) (core ↔ host / instance model), [ADR 0083](<redacted>.md) (module-owned migrations — the enabled-gated precedent this generalizes). Executed under task [#1704](https://example.com/builders#/task/1704); the tactical predecessor was task [#1264](https://example.com/builders#/task/1264) (the 172/173 guards).
8
- - **Amended by:** [ADR 0108](<redacted>.md) §5 — under configurable-root, `migrations/instance/` becomes a genuinely SEPARATE repo's directory (not a subtree of the same checkout), and two independently-versioned repos both adding `NNN_*.sql` will collide on the shared `schema_migrations` stem key. §5 commits to a namespacing/lineage discipline before that ships (task 1885, W5); this ADR's basename-merge-sort ordering and stem-key idempotency in `migrate.sh` are the mechanism §5 extends, not replaces.
7
+ - **Relates to:** [ADR 0062](0062-medusa-instance-model-decoupling.md) (core ↔ host / instance model), [ADR 0083](0083-modular-architecture-strangler-build-plan.md) (module-owned migrations — the enabled-gated precedent this generalizes). Executed under task [#1704](https://example.com/builders#/task/1704); the tactical predecessor was task [#1264](https://example.com/builders#/task/1264) (the 172/173 guards).
8
+ - **Amended by:** [ADR 0108](0108-instance-composition-configurable-root.md) §5 — under configurable-root, `migrations/instance/` becomes a genuinely SEPARATE repo's directory (not a subtree of the same checkout), and two independently-versioned repos both adding `NNN_*.sql` will collide on the shared `schema_migrations` stem key. §5 commits to a namespacing/lineage discipline before that ships (task 1885, W5); this ADR's basename-merge-sort ordering and stem-key idempotency in `migrate.sh` are the mechanism §5 extends, not replaces.
9
9
 
10
10
  ## Context
11
11
 
@@ -4,7 +4,7 @@
4
4
  - **Date:** 2026-07-03
5
5
  - **Deciders:** jaxri (Metic, owner request), Claude
6
6
 
7
- **Builds on / amends:** [ADR 0086](<redacted>.md) (goal-scoped work hierarchy — this ADR refines its membership-role semantics), [ADR 0016](<redacted>.md) (server-enforced rank boundary — unchanged), [ADR 0090](<redacted>.md) (Metic authoring powers — the rank floor this ADR reuses for ownership).
7
+ **Builds on / amends:** [ADR 0086](0086-goal-scoped-work-hierarchy.md) (goal-scoped work hierarchy — this ADR refines its membership-role semantics), [ADR 0016](0016-trust-boundary-server-enforced-permissions.md) (server-enforced rank boundary — unchanged), [ADR 0090](0090-metic-task-authoring.md) (Metic authoring powers — the rank floor this ADR reuses for ownership).
8
8
 
9
9
  **Track:** `internal` (GDS / methodology — a Cloud Bongos platform capability).
10
10
 
@@ -59,7 +59,7 @@ Two authority layers, deliberately different *kinds*:
59
59
  goal over. The old owner keeps their `lead` row (drops to manager, not out);
60
60
  the new owner's membership upserts to `lead` in the same statement that moves
61
61
  `created_by`. **The new owner must be Metic+**: goal creation is Metic+
62
- ([ADR 0086](<redacted>.md) / R57), ownership is
62
+ ([ADR 0086](0086-goal-scoped-work-hierarchy.md) / R57), ownership is
63
63
  creator-equivalent authority, and this also keeps the protected-scope
64
64
  membership wall intact (a protected-scope goal requires Metic+ members).
65
65
  - **Creation rank gate: unchanged.** `POST /goals` was already
@@ -4,8 +4,8 @@
4
4
  - **Date:** 2026-07-03
5
5
  - **Track:** internal
6
6
  - **Task:** [#1766](https://example.com/builders#/task/1766) (BV1) — the owner-review decision this ADR records + the initiative it seeds.
7
- - **Builds on:** [ADR 0062](<redacted>.md) §1 (portable-core / host-instance / gated feature-module cut-line), [ADR 0083](<redacted>.md) (the module system — loader, manifest, seams, module-owned migrations), [ADR 0098](<redacted>.md) (`isPublishable()` — what a module may contain to enter an AGPL core), [ADR 0065](<redacted>.md) (AGPL-3.0, non-profit, AI-first — and its explicit rejection of CLA-relicensing as "capture").
8
- - **Complements:** [ADR 0100](<redacted>.md) / [ADR 0103](<redacted>.md) — those define the **distribution** arrow (core → instance, a pinned versioned dependency). This ADR defines the **reverse** arrow (instance → core): an instance's module flows *upstream* into the shared catalog. The two arrows together make the module boundary a two-way membrane.
7
+ - **Builds on:** [ADR 0062](0062-medusa-instance-model-decoupling.md) §1 (portable-core / host-instance / gated feature-module cut-line), [ADR 0083](0083-modular-architecture-strangler-build-plan.md) (the module system — loader, manifest, seams, module-owned migrations), [ADR 0098](0098-public-mirror-publish-manifest.md) (`isPublishable()` — what a module may contain to enter an AGPL core), [ADR 0065](0065-agpl-nonprofit-ai-first-governance.md) (AGPL-3.0, non-profit, AI-first — and its explicit rejection of CLA-relicensing as "capture").
8
+ - **Complements:** [ADR 0100](0100-two-repo-instance-model.md) / [ADR 0103](0103-core-first-extraction-cloud-bongos-trunk.md) — those define the **distribution** arrow (core → instance, a pinned versioned dependency). This ADR defines the **reverse** arrow (instance → core): an instance's module flows *upstream* into the shared catalog. The two arrows together make the module boundary a two-way membrane.
9
9
 
10
10
  ## Context
11
11
 
@@ -15,7 +15,7 @@ The owner's direction (2026-07-03): an instance also builds feature modules of i
15
15
 
16
16
  A read-only audit of the current codebase (task [#1766](https://example.com/builders#/task/1766)) established ground truth:
17
17
 
18
- - **The prerequisites are solid.** A validated `module.json` manifest ([`src/module-loader/manifest-schema.js`](../../src/module-loader/manifest-schema.js)), a discover→mount loader with a **one-way import boundary** hard-enforced in CI ([`scripts/gds/fitness.js`](../../scripts/gds/fitness.js) Check 12, [ADR 0102](<redacted>.md)), opt-in **default-off** enablement (`config/modules.json` / `config/modules.neutral.json`), module-owned migrations, and the `isPublishable()` publish boundary that already decides which module *shapes* may enter an AGPL core.
18
+ - **The prerequisites are solid.** A validated `module.json` manifest ([`src/module-loader/manifest-schema.js`](../../src/module-loader/manifest-schema.js)), a discover→mount loader with a **one-way import boundary** hard-enforced in CI ([`scripts/gds/fitness.js`](../../scripts/gds/fitness.js) Check 12, [ADR 0102](0102-finish-bounding-the-kernel.md)), opt-in **default-off** enablement (`config/modules.json` / `config/modules.neutral.json`), module-owned migrations, and the `isPublishable()` publish boundary that already decides which module *shapes* may enter an AGPL core.
19
19
  - **The capability is absent.** There is no submission/approval/merge-upstream flow, no catalog/registry (a "marketplace" is an explicitly-deferred future fork in [`docs/design/modular-architecture/01-architecture.md`](../../docs/design/modular-architecture/01-architecture.md)), and the manifest has **no** `author` / `origin` / `license` / `maintainer` fields — adding them fails manifest validation until the schema is extended.
20
20
  - **The name "contribution seam" is already taken** — it is the in-process UI/profile extension hook (`contribute`/`contributions`, `CORE_VERSION` 1.1.0). This capability must use a distinct name to avoid confusion: **module upstreaming** / **the module catalog**.
21
21
  - **A CI gap:** contributed-module tests only run in core CI if placed at repo-root `tests/`; the runner does not discover `modules/<key>/tests/`.
@@ -28,7 +28,7 @@ An instance builds a module in its own repo. To land it in core, a **platform-na
28
28
 
29
29
  ### 2. Attribution is portable metadata, not a cross-database link.
30
30
 
31
- Each repo runs its own GDS with its own builder identities ([ADR 0100](<redacted>.md) §3) — there is no shared identity key. So credit **travels with the module**: `module.json` gains `author`, `origin` (origin instance/project), `license`, and `maintainer` fields, captured at submit time. The catalog shows author + origin credit. This is a *record*, not a foreign key.
31
+ Each repo runs its own GDS with its own builder identities ([ADR 0100](0100-two-repo-instance-model.md) §3) — there is no shared identity key. So credit **travels with the module**: `module.json` gains `author`, `origin` (origin instance/project), `license`, and `maintainer` fields, captured at submit time. The catalog shows author + origin credit. This is a *record*, not a foreign key.
32
32
 
33
33
  ### 3. Reward: credit now, money later.
34
34
 
@@ -36,7 +36,7 @@ Accepted contributions earn **visible credit** (author + origin in the catalog)
36
36
 
37
37
  ### 4. Licensing: AGPL-in, sign-off, no CLA.
38
38
 
39
- Core is AGPL-3.0 and [ADR 0065](<redacted>.md) rejected CLA-relicensing as capture. So **inbound = outbound**: a contributed module is accepted under AGPL-3.0 with a lightweight **DCO-style sign-off** (the contributor affirms it is their own work, licensed AGPL) — never a copyright-assignment CLA. The `isPublishable()` pre-check runs at **submit time** and rejects anything that cannot be AGPL'd (game content, pixel art, copyrighted reference material).
39
+ Core is AGPL-3.0 and [ADR 0065](0065-agpl-nonprofit-ai-first-governance.md) rejected CLA-relicensing as capture. So **inbound = outbound**: a contributed module is accepted under AGPL-3.0 with a lightweight **DCO-style sign-off** (the contributor affirms it is their own work, licensed AGPL) — never a copyright-assignment CLA. The `isPublishable()` pre-check runs at **submit time** and rejects anything that cannot be AGPL'd (game content, pixel art, copyrighted reference material).
40
40
 
41
41
  ### 5. Security review is a hard accept-gate.
42
42
 
@@ -69,7 +69,7 @@ The enable/disable and provenance views are buildable against the existing modul
69
69
  ## Alternatives considered (rejected)
70
70
 
71
71
  - **Fork-and-PR only.** Standard OSS, but loses attribution/sign-off capture and doesn't fit the GDS review/approval methodology. Kept as a fallback, not the canonical path.
72
- - **A CLA granting relicensing rights.** Rejected by [ADR 0065](<redacted>.md) as capture; incompatible with the non-profit posture.
72
+ - **A CLA granting relicensing rights.** Rejected by [ADR 0065](0065-agpl-nonprofit-ai-first-governance.md) as capture; incompatible with the non-profit posture.
73
73
  - **Auto-accept / CI-only gate (no security review).** Rejected — a module runs in every enabling instance with no sandbox; unreviewed inbound code is a supply-chain compromise across all instances.
74
74
  - **Accepted modules default-on.** Rejected — every instance would inherit every contributed feature; breaks the "fail-to-vanilla" default-off contract.
75
75
  - **A package marketplace now.** Rejected as premature (the design docs defer it); the in-repo catalog is the smaller first step.
@@ -4,14 +4,14 @@
4
4
  - **Date:** 2026-07-03
5
5
  - **Track:** internal
6
6
  - **Task:** [#1870](https://example.com/builders#/task/1870) (BV1.R115) — the decision this ADR records.
7
- - **Decides:** *how* a consumer instance physically composes with the extracted Cloud Bongos core — the composition **mechanism** that [ADR 0062](<redacted>.md) §10, [ADR 0100](<redacted>.md) §1, and [ADR 0103](<redacted>.md) §2 each left open. Those ADRs decided the repo *count* (two), the *order* (core-first), and per-repo GDS; they are deliberately mechanism-neutral ("installs a pinned core + layers its own content on top"), and [ADR 0103](<redacted>.md)'s R88 execution record explicitly deferred "the topology/instance paths the scaffold populates on `init`." This ADR resolves that deferral.
7
+ - **Decides:** *how* a consumer instance physically composes with the extracted Cloud Bongos core — the composition **mechanism** that [ADR 0062](0062-medusa-instance-model-decoupling.md) §10, [ADR 0100](0100-two-repo-instance-model.md) §1, and [ADR 0103](0103-core-first-extraction-cloud-bongos-trunk.md) §2 each left open. Those ADRs decided the repo *count* (two), the *order* (core-first), and per-repo GDS; they are deliberately mechanism-neutral ("installs a pinned core + layers its own content on top"), and [ADR 0103](0103-core-first-extraction-cloud-bongos-trunk.md)'s R88 execution record explicitly deferred "the topology/instance paths the scaffold populates on `init`." This ADR resolves that deferral.
8
8
  - **Replaces:** the never-shipped clone-and-layer draft of this same ADR number. A 2026-07-03 owner review rejected clone-and-layer in favour of the scalable model below — optimising for upgrade economics + a real product boundary over near-term least-resistance. (No supersession machinery: the draft never merged.)
9
- - **Builds on:** [ADR 0062](<redacted>.md) §1 (core/host cut-line), [ADR 0098](<redacted>.md) (`isPublishable()` — now "the core *package* contents"), [ADR 0100](<redacted>.md) §§3–4 (per-repo GDS + conditional mirror, both retained), [ADR 0103](<redacted>.md) (core-first extraction; R88 shipped → `cloud-bongos`), [ADR 0105](<redacted>.md) (the `migrations/instance/` split), [ADR 0083](<redacted>.md)/[ADR 0061](<redacted>.md) (the module boundary + fitness functions), [ADR 0082](<redacted>.md).
9
+ - **Builds on:** [ADR 0062](0062-medusa-instance-model-decoupling.md) §1 (core/host cut-line), [ADR 0098](0098-public-mirror-publish-manifest.md) (`isPublishable()` — now "the core *package* contents"), [ADR 0100](0100-two-repo-instance-model.md) §§3–4 (per-repo GDS + conditional mirror, both retained), [ADR 0103](0103-core-first-extraction-cloud-bongos-trunk.md) (core-first extraction; R88 shipped → `cloud-bongos`), [ADR 0105](0105-instance-seed-migrations-out-of-core.md) (the `migrations/instance/` split), [ADR 0083](0083-modular-architecture-strangler-build-plan.md)/[ADR 0061](0061-context-layer-decomposition.md) (the module boundary + fitness functions), [ADR 0082](0082-server-side-merge-conflict-auto-resolution.md).
10
10
  - **Informs:** [#1689](https://example.com/builders#/task/1689) (R85 — Mercury, the first real consumer + the contract's validator), [#1690](https://example.com/builders#/task/1690) (R86 — the `bongos upgrade` channel), [#1728](https://example.com/builders#/task/1728) (R89 — the Example split), plus the net-new workstreams enumerated in §Consequences.
11
11
 
12
12
  ## Context
13
13
 
14
- [ADR 0103](<redacted>.md) extracted the Cloud Bongos core into its own repo (R88, [#1727](https://example.com/builders#/task/1727), shipped 2026-07-03) and committed Mercury (R85) and Example (R89) to becoming *consumer repos on a pinned core*. It left the composition **mechanism** open. Two shapes were possible:
14
+ [ADR 0103](0103-core-first-extraction-cloud-bongos-trunk.md) extracted the Cloud Bongos core into its own repo (R88, [#1727](https://example.com/builders#/task/1727), shipped 2026-07-03) and committed Mercury (R85) and Example (R89) to becoming *consumer repos on a pinned core*. It left the composition **mechanism** open. Two shapes were possible:
15
15
 
16
16
  - **Clone-and-layer** — the consumer repo *is* the pinned core tree materialised at its **root**, host content layered on top; the core keeps sitting at repo-root, so its pervasive repo-root path assumptions keep working unchanged.
17
17
  - **Configurable-root** — the core is installed as a **versioned dependency** (`@cloudbongos/core` in `node_modules/`) and resolves host content through an **injected instance-root**, so it no longer assumes it lives at the repo root.
@@ -69,7 +69,7 @@ Upgrading = bump the pin in `package.json`/lockfile → `npm ci` → migrate →
69
69
 
70
70
  - **Clone-and-layer (the prior draft of this ADR).** Cheapest now, proven by the two proofs (cloudbongos.com reskin + the `package-core` tree snapshot), zero core-path changes. **Rejected as the destination:** merge-based upgrades don't scale across many instances × core versions; the boundary is convention + CI and rots under scale; there is no forcing function for a clean core API; and it dead-ends any multi-instance/hosted future — needing this exact refactor later regardless, under worse conditions. **Retained** only as the cheap single-checkout reskin shape (cloudbongos.com).
71
71
  - **Git submodule for the core.** Rejected — still lands the core at a subpath (so it still needs configurable-root; it doesn't avoid the refactor) and adds the submodule UX tax on an AI-agent-first builder base.
72
- - **One monorepo with an internal `core/` + `instances/` cut.** Already rejected in [ADR 0103](<redacted>.md) — the core never becomes a separately shippable product.
72
+ - **One monorepo with an internal `core/` + `instances/` cut.** Already rejected in [ADR 0103](0103-core-first-extraction-cloud-bongos-trunk.md) — the core never becomes a separately shippable product.
73
73
 
74
74
  ## Consequences
75
75
 
@@ -78,10 +78,10 @@ Upgrading = bump the pin in `package.json`/lockfile → `npm ci` → migrate →
78
78
  1. **`.claude/` materialisation + invocation rewrite** (§3). `bongos init`/`upgrade` must copy `.claude/` into the instance and rewrite ~30 skills + the `settings.json` hooks to the `bongos` bin. This is what makes an installed instance actually usable by AI agents; it does not exist today.
79
79
  2. **Deploy conversion** (§4). `git reset --hard` → `npm ci`-of-the-pinned-core; `ship.js` (~151 KB, a monorepo-coupled deploy tool) needs rework; and the **shared-checkout dual-instance deploy** (example + cloudbongos.com on one tree — already the reason cloudbongos.com runs stale) must be cut *in tandem* with standing up the npm-install flow, or cloudbongos.com breaks.
80
80
  3. **Cross-repo migration numbering** (§5) — the deepest design risk; needs the namespacing + lineage discipline before two repos version independently.
81
- 4. **The guardrails become two-root-aware.** `fitness.js`, `gen-repo-map.js`, and `gen-file-map.js` each hardcode `REPO_ROOT = __dirname/../..` and walk one tree; once the core is in `node_modules`, the core↔host boundary check, the CLAUDE.md-budget check, the nested-doc-presence check, and the two generators would inspect the wrong tree. They must learn the core-root/instance-root split — this is the mechanism [ADR 0062](<redacted>.md) §9 / [ADR 0061](<redacted>.md) rely on to keep the boundary from rotting, so it matters *more* under a real repo gap, not less.
81
+ 4. **The guardrails become two-root-aware.** `fitness.js`, `gen-repo-map.js`, and `gen-file-map.js` each hardcode `REPO_ROOT = __dirname/../..` and walk one tree; once the core is in `node_modules`, the core↔host boundary check, the CLAUDE.md-budget check, the nested-doc-presence check, and the two generators would inspect the wrong tree. They must learn the core-root/instance-root split — this is the mechanism [ADR 0062](0062-medusa-instance-model-decoupling.md) §9 / [ADR 0061](0061-context-layer-decomposition.md) rely on to keep the boundary from rotting, so it matters *more* under a real repo gap, not less.
82
82
 
83
83
  **But the runtime-library half is small and de-risked:** ~8–11 readers through the resolvers, and the entrypoint seam, the two-roots loader, the single-sourced `isPublishable()` partition, and the Docker/vanilla-boot substrate all already exist. Step 1 is byte-identical for prod, which lets the risky part land reversibly and early.
84
84
 
85
- **Docs to amend** (none *superseded* — this ADR resolves the mechanism they deferred, so they get cross-refs, not reversals): `docs/file-map.md` (present the tree as two — core-package vs instance), `docs/architecture.md` (repo + deploy), `docs/recipes/packaging-the-core.md` + `docs/recipes/self-host.md` (npm consumption + mount targets), [ADR 0105](<redacted>.md) (three-root migrations), `docs/modules-contract.md` (two-root discovery); cross-refs in [ADR 0062](<redacted>.md)/[0100](<redacted>.md)/[0103](<redacted>.md)/[0098](<redacted>.md), `docs/branding-contract.md`, and `CLAUDE.md` (whose nested-doc discovery model assumes core dirs sit at the instance root — they will live in the package). Keep within the CLAUDE.md 300-line / 42 KB fitness ceiling — relocate detail here, don't expand CLAUDE.md.
85
+ **Docs to amend** (none *superseded* — this ADR resolves the mechanism they deferred, so they get cross-refs, not reversals): `docs/file-map.md` (present the tree as two — core-package vs instance), `docs/architecture.md` (repo + deploy), `docs/recipes/packaging-the-core.md` + `docs/recipes/self-host.md` (npm consumption + mount targets), [ADR 0105](0105-instance-seed-migrations-out-of-core.md) (three-root migrations), `docs/modules-contract.md` (two-root discovery); cross-refs in [ADR 0062](0062-medusa-instance-model-decoupling.md)/[0100](0100-two-repo-instance-model.md)/[0103](0103-core-first-extraction-cloud-bongos-trunk.md)/[0098](0098-public-mirror-publish-manifest.md), `docs/branding-contract.md`, and `CLAUDE.md` (whose nested-doc discovery model assumes core dirs sit at the instance root — they will live in the package). Keep within the CLAUDE.md 300-line / 42 KB fitness ceiling — relocate detail here, don't expand CLAUDE.md.
86
86
 
87
87
  **Commitments:** R85 is built as `npm install`-of-the-core + configurable-root (and becomes the contract's validator); R86 is a version-bump channel; R89 keeps the risky path/guardrail/trust-boundary changes behind a security review. **No migration, no new criterion** minted by this ADR; recorded against goal 26 (Cloud Bongos productization and self-host).
@@ -5,7 +5,7 @@
5
5
  - **Track:** internal
6
6
  - **Task:** [#1918](https://example.com/builders#/task/1918) (BONGOS-V1) — Part A of the API-docs + `/api/gds`→`/api/bongos` rename plan.
7
7
  - **Decides:** how the GDS API is documented so an AI agent (or any tool) can read it, and where that documentation is hosted.
8
- - **Builds on:** [ADR 0016](<redacted>.md) (server-enforced ranks — the gate each endpoint carries), [ADR 0063](<redacted>.md) (the "generate, don't hand-maintain, enforce with `--check`" pattern this copies), [ADR 0062](<redacted>.md) §3 (branding-injected served HTML), [ADR 0108](<redacted>.md) (two-root generator conventions).
8
+ - **Builds on:** [ADR 0016](0016-trust-boundary-server-enforced-permissions.md) (server-enforced ranks — the gate each endpoint carries), [ADR 0063](0063-generated-repo-map-symbol-skeleton.md) (the "generate, don't hand-maintain, enforce with `--check`" pattern this copies), [ADR 0062](0062-medusa-instance-model-decoupling.md) §3 (branding-injected served HTML), [ADR 0108](0108-instance-composition-configurable-root.md) (two-root generator conventions).
9
9
  - **Informs:** the `/api/gds` → `/api/bongos` URL + naming rename (Part B), which flips the single `src/bongos/api-prefix.js` constant this ADR introduces.
10
10
 
11
11
  ## Context
@@ -14,8 +14,8 @@ The GDS API had **no machine-readable contract**. The only endpoint doc was `doc
14
14
 
15
15
  Two things were already true and shaped the answer:
16
16
 
17
- 1. **A route-introspection engine already exists and is CI-enforced.** `src/bongos/route-rank-check.js` (`discoverRouteFiles` + `classifyText` + `classifyRank`) already enumerates every endpoint — method, path, rank gate, source file — across core + every module, because the ship-time rank gate ([ADR 0016](<redacted>.md)) depends on it. It is the natural, non-drifting backbone for docs.
18
- 2. **A generator pattern is established** ([ADR 0063](<redacted>.md)): a deterministic file-reader with a `--check` mode wired into `fitness.js` and auto-regenerated at ship. Docs generated the same way cannot rot.
17
+ 1. **A route-introspection engine already exists and is CI-enforced.** `src/bongos/route-rank-check.js` (`discoverRouteFiles` + `classifyText` + `classifyRank`) already enumerates every endpoint — method, path, rank gate, source file — across core + every module, because the ship-time rank gate ([ADR 0016](0016-trust-boundary-server-enforced-permissions.md)) depends on it. It is the natural, non-drifting backbone for docs.
18
+ 2. **A generator pattern is established** ([ADR 0063](0063-generated-repo-map-symbol-skeleton.md)): a deterministic file-reader with a `--check` mode wired into `fitness.js` and auto-regenerated at ship. Docs generated the same way cannot rot.
19
19
 
20
20
  ## Decision
21
21
 
@@ -3,7 +3,7 @@
3
3
  - **Status:** Accepted
4
4
  - **Date:** 2026-07-03
5
5
  - **Track:** internal
6
- - **Builds on:** [ADR 0094](<redacted>.md) (the `gen-atlas.js` precedent — a gitignored artifact rebuilt on every deploy), [ADR 0063](<redacted>.md) (`gen-repo-map.js`), [ADR 0062](<redacted>.md) §8 (`gen-session-index.js`), [ADR 0082](<redacted>.md) (the reactive `otb-regen` heal — kept, not replaced), [ADR 0055](<redacted>.md) (server-mediated publish — untouched)
6
+ - **Builds on:** [ADR 0094](0094-repo-atlas-self-drawing-codebase-map.md) (the `gen-atlas.js` precedent — a gitignored artifact rebuilt on every deploy), [ADR 0063](0063-generated-repo-map-symbol-skeleton.md) (`gen-repo-map.js`), [ADR 0062](0062-medusa-instance-model-decoupling.md) §8 (`gen-session-index.js`), [ADR 0082](0082-server-side-merge-conflict-auto-resolution.md) (the reactive `otb-regen` heal — kept, not replaced), [ADR 0055](0055-server-mediated-branch-publish.md) (server-mediated publish — untouched)
7
7
  - **Task:** [#1926](https://example.com/builders#/task/1926)
8
8
  - **Supersedes (in part):** the "regenerated + committed at ship" contract for `docs/repo-map.md` and `docs/session-log-index.md` (ADR 0063 / ADR 0062 §8). The nested-block half of that contract stands.
9
9