@bongos/core 1.19.631 → 1.19.632

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.
package/.bongos-core.json CHANGED
@@ -2,11 +2,11 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.19.631",
6
- "core_contract": "1.19.631",
7
- "source_commit": "8202774d7961f042840d27630f4d0e1a6a5e07e9",
5
+ "core_version": "1.19.632",
6
+ "core_contract": "1.19.632",
7
+ "source_commit": "9fe600f2803473a279fd357fef4dd78cf1f7e03a",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-09T23:08:37.908Z",
9
+ "built_at": "2026-09-09T23:32:52.198Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 467,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 2590,
20
- "tree_sha256": "12f67762d32cfaf31bd0af336ddcc207dcacaf27f2be902ae6b5de3aa45e3834",
20
+ "tree_sha256": "41e7cce2b7459c02fd56072f0784da040022f773accb86bdf4407f43a275f755",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/backlog-review/SKILL.md",
@@ -2772,7 +2772,7 @@
2772
2772
  {
2773
2773
  "path": "docs/module-api-changelog.md",
2774
2774
  "mode": "0000644",
2775
- "sha256": "bba1068a4fa47d679635e4b88d714e0246094440aa3df3e1b62e4df16d387aa9"
2775
+ "sha256": "b923feda2cf9f8032a64e80fb2021de98d8f0de3ae7c454d21cc7b9ad9a252a3"
2776
2776
  },
2777
2777
  {
2778
2778
  "path": "docs/modules-contract.md",
@@ -7702,12 +7702,12 @@
7702
7702
  {
7703
7703
  "path": "package-lock.json",
7704
7704
  "mode": "0000644",
7705
- "sha256": "cb7b272da5c1fc4642acf70c63ee1781ee34101fe912cc0e907ebb71fd5f1ae3"
7705
+ "sha256": "cda41f429912a858d853d30b46423b1dafbeb97ec6c1b86725e3160567e05c13"
7706
7706
  },
7707
7707
  {
7708
7708
  "path": "package.json",
7709
7709
  "mode": "0000644",
7710
- "sha256": "9dba32fee8407356a478c9d5038b7d95db52c1a9d8a9e242f0be79d3c4d79f65"
7710
+ "sha256": "ffd33922c9171797cb1138b0bcc822258d4959ba8bd0186cba54b962313cdf45"
7711
7711
  },
7712
7712
  {
7713
7713
  "path": "public-docs/index.html",
@@ -9257,7 +9257,7 @@
9257
9257
  {
9258
9258
  "path": "src/bongos/module-scope-map.js",
9259
9259
  "mode": "0000644",
9260
- "sha256": "355a2ceb744e52afa710a23bc50b2df4e27982e5b8bb1cf73ed2db6d530c830e"
9260
+ "sha256": "9a089861e3a9692646381208a71fd3fe4d146c747f1727fabc9d96079d509538"
9261
9261
  },
9262
9262
  {
9263
9263
  "path": "src/bongos/module-submissions.js",
@@ -9447,7 +9447,7 @@
9447
9447
  {
9448
9448
  "path": "src/module-api.js",
9449
9449
  "mode": "0000644",
9450
- "sha256": "f4839dfff1614c47e74577cff4761fb951d17c1702d5bccc77e818348077b9c6"
9450
+ "sha256": "f4936b4b2e9cd4a1ce254e9be6ea19c0015f198f0799f8ef1f96dc06317080d5"
9451
9451
  },
9452
9452
  {
9453
9453
  "path": "src/module-loader/catalog.js",
@@ -11547,7 +11547,7 @@
11547
11547
  {
11548
11548
  "path": "tests/module-scope-map.mjs",
11549
11549
  "mode": "0000644",
11550
- "sha256": "e705c80ebe2637941415fb96c1add4c0d73b37d956e8f14f0bbf3c8729d33257"
11550
+ "sha256": "470ccf8f8d5f30ce613f01db7dca4ceda00163b5df16a8a0a4ec84a947eba083"
11551
11551
  },
11552
11552
  {
11553
11553
  "path": "tests/module_api.mjs",
@@ -1711,5 +1711,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
1711
1711
  landed since 1.19.629 with no explicit bump. run 34415169250. (task 1002620)
1712
1712
  1.19.631 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1713
1713
  landed since 1.19.630 with no explicit bump. run 34415537907. (task 1002620)
1714
+ 1.19.632 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1715
+ landed since 1.19.631 with no explicit bump. run 34417373737. (task 1002620)
1714
1716
  ---------------------------------------------------------------------------
1715
1717
  ```
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.631",
3
+ "version": "1.19.632",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.631",
9
+ "version": "1.19.632",
10
10
  "license": "AGPL-3.0-or-later",
11
11
  "dependencies": {
12
12
  "express": "^4.21.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.631",
3
+ "version": "1.19.632",
4
4
  "description": "Cloud Bongos — the AI-first build platform core (GDS + platform surfaces + module system), installed as a versioned dependency (ADR 0108).",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "main": "src/platform-server.js",
@@ -339,6 +339,53 @@ const MODULE_GLOBS = {
339
339
  'scripts/gds/redteam-patrol.js', 'scripts/gds/audit-gate.js',
340
340
  'scripts/gds/fitness-ratchets.js', 'scripts/gds/control-manifest.js',
341
341
  ],
342
+ // --- the METHODOLOGY surfaces: the instruction core an agent session actually
343
+ // reads — the always-loaded root CLAUDE.md, the docs library it indexes, the
344
+ // slash-command skills, and the two scripts/gds files that compose a session's
345
+ // opening context (start.js and the discipline→mode table it routes on).
346
+ // Added by task 1002989 (goal 1000095, working area 6) as PREP for the
347
+ // kernel↔pack split (task 1002990): that work rewrites CLAUDE.md, authors the
348
+ // Engineer/Artist/Ideator packs, and deletes .claude/skills/{dev,ideate,paint}/
349
+ // — paths NO key resolved, so the goal could not wall its own work (the
350
+ // 1002690 / 1002736 / 1003124 precedent: a missing key is an empty wall, and
351
+ // goal-scope-check then denies every member-authored task).
352
+ // `protected` DERIVES true — the root CLAUDE.md, docs/canonical-permissions.md
353
+ // and the two trust ADRs sit in the ADR 0043 protected-surfaces registry — so a
354
+ // goal scoped here is Archon-only (BV1.R57). Correct: this is the text that
355
+ // frames every agent session.
356
+ // BOUNDARIES.
357
+ // • 'docs/' is deliberately the WHOLE subtree. The ADRs, recipes, session logs,
358
+ // audits and design notes are one library; splitting it per module would rot
359
+ // on the next doc, and the glob format has no wildcards to carve with. The
360
+ // exact docs/ paths other keys enumerate (kernel's module-api-changelog,
361
+ // copy-desk's two copy artifacts, ui-design's two loop recipes) stay listed
362
+ // there for task affinity — overlap is legal (touchesOverlap is prefix-aware
363
+ // both directions) and it keeps those walls standing on their own.
364
+ // KNOWN CONSEQUENCE: docs/ was previously owned by nobody, which the ship-time
365
+ // module-drift advisory (scripts/gds/ship-flow.js, BV1.R53) read as
366
+ // "cross-cutting, allowed". A module_key-labelled task that also writes a
367
+ // session log / ADR / regenerated doc now trips that WARNING (advisory only —
368
+ // it refuses solely under --enforce-module). Filed as an idea to teach the
369
+ // drift check about cross-cutting keys rather than shrink this glob.
370
+ // • '.claude/skills/' is the whole dir, on the precedent the map already sets
371
+ // for autonomy ('.claude/scheduled-tasks/') and agents ('.claude/agents/'):
372
+ // a definition surface travels with the system that composes it. The
373
+ // devsecops note — skills stay with whichever module ships the skill — still
374
+ // holds for a module that enumerates its own (ui-design lists three); this
375
+ // key is the floor under the ~50 that no module claims.
376
+ // • '.claude/rules/' is pre-carved territory for task 1003687 (move the
377
+ // CLAUDE.md content charter to a paths-scoped rule file) — the carve precedes
378
+ // the feature, ADR 0086 §4, on the devsecops '.npmrc' precedent.
379
+ // NOT here: scripts/gds/fitness.js. Task 1002989's brief named it as uncovered,
380
+ // but that brief predates task 1003124, which gave devsecops the fitness/entropy
381
+ // tooling. One owner per enforcement tool — the CLAUDE.md budget check is
382
+ // enforcement, not methodology prose. ---
383
+ methodology: [
384
+ 'CLAUDE.md',
385
+ 'docs/',
386
+ '.claude/skills/', '.claude/rules/',
387
+ 'scripts/gds/start.js', 'scripts/gds/discipline-modes.json',
388
+ ],
342
389
  };
343
390
 
344
391
  // A glob set is protected iff it overlaps the imported PROTECTED_GLOBS — the one
package/src/module-api.js CHANGED
@@ -55,7 +55,7 @@ const { buildInfo } = require('./build-info');
55
55
  // there. scripts/gds/bump-version.js still rewrites the literal below; it appends
56
56
  // the entry to that file. Look for a version's history there, not here.
57
57
  // ---------------------------------------------------------------------------
58
- const CORE_VERSION = '1.19.631'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
58
+ const CORE_VERSION = '1.19.632'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
59
59
 
60
60
  // A namespaced logger so a module's log lines are attributable + consistent.
61
61
  // Usage: const log = api.logger('dev-box'); log.info('mounted');
@@ -206,3 +206,48 @@ test('devsecops joined the roster (task 1003124) — the enforcement territory g
206
206
  assert.equal(covers('.claude/skills/builder-ship/SKILL.md'), false, 'skills stay with the module that ships them');
207
207
  assert.equal(covers('scripts/gds/ship.js'), false, 'the ship pipeline belongs to lifecycle, not devsecops');
208
208
  });
209
+
210
+ test('methodology joined the roster (task 1002989) — the instruction surfaces working area 6 walls', () => {
211
+ // Before this, the root CLAUDE.md, docs/, .claude/skills/ and the two session-
212
+ // composing scripts were covered by NO key, so goal 1000095 could not wall the
213
+ // kernel↔pack split (task 1002990) — the work that rewrites CLAUDE.md, authors the
214
+ // Engineer/Artist/Ideator packs, and deletes the three discipline skills.
215
+ assert.ok(scope.isModuleKey('methodology'), 'roster missing module "methodology"');
216
+ const globs = scope.globsForModules(['methodology']);
217
+ assert.ok(globs.includes('CLAUDE.md'), 'methodology owns the always-loaded instruction root');
218
+ assert.ok(globs.includes('docs/'), 'methodology owns the docs library');
219
+ assert.ok(globs.includes('.claude/skills/'), 'the slash-command skills are the methodology definition surface');
220
+ assert.ok(globs.includes('scripts/gds/start.js'), 'the session-opening composer travels with the domain');
221
+ // Derived, not hand-set: CLAUDE.md, docs/canonical-permissions.md and the two trust
222
+ // ADRs sit in the ADR 0043 protected-surfaces registry, so this key MUST derive
223
+ // protected — creating or widening a goal into it is Archon-only (BV1.R57).
224
+ assert.equal(scope.isProtectedModule('methodology'), true, 'methodology must derive protected (CLAUDE.md is a protected surface)');
225
+ assert.equal(
226
+ scope.scopeForModule('methodology').protected,
227
+ scope.isProtected(globs),
228
+ 'protected must be the faithful derivation, never a literal',
229
+ );
230
+ // Asserted through the REAL consumer (directional containment), not re-implemented.
231
+ const covers = (touch) => gsc.scopeSubset(['methodology'], [touch]).ok;
232
+ for (const touch of [
233
+ 'CLAUDE.md', // the kernel half of the split (1002990)
234
+ '.claude/skills/dev/SKILL.md', // one of the three discipline skills it deletes
235
+ '.claude/skills/ideate/SKILL.md',
236
+ '.claude/skills/paint/SKILL.md',
237
+ '.claude/rules/content-charter.md', // pre-carved for task 1003687
238
+ 'docs/adr/0264-the-ten-working-areas.md', // the ADR library
239
+ 'docs/handoff-template.md',
240
+ 'scripts/gds/start.js', // composes a session's opening context
241
+ 'scripts/gds/discipline-modes.json', // the discipline→mode table it routes on
242
+ ]) {
243
+ assert.equal(covers(touch), true, `wall does not cover ${touch}`);
244
+ }
245
+ // …and still BOUNDS: the trust kernel, the sibling .claude definition dirs, and the
246
+ // enforcement tooling devsecops owns all stay outside this wall.
247
+ assert.equal(covers('src/bongos/auth.js'), false, 'the wall must not cover the kernel auth core');
248
+ assert.equal(covers('.claude/settings.json'), false, 'the agent settings belong to devsecops');
249
+ assert.equal(covers('.claude/scheduled-tasks/bfg/SKILL.md'), false, 'scheduled-tasks belongs to autonomy, not methodology');
250
+ assert.equal(covers('.claude/agents/reviewer.md'), false, 'agent definitions belong to agents, not methodology');
251
+ assert.equal(covers('scripts/gds/fitness.js'), false, 'the fitness tool stayed with devsecops (task 1003124)');
252
+ assert.equal(covers('scripts/gds/ship.js'), false, 'the ship pipeline belongs to lifecycle');
253
+ });