@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 +11 -11
- package/docs/module-api-changelog.md +2 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/bongos/module-scope-map.js +47 -0
- package/src/module-api.js +1 -1
- package/tests/module-scope-map.mjs +45 -0
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.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
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:
|
|
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": "
|
|
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": "
|
|
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": "
|
|
7705
|
+
"sha256": "cda41f429912a858d853d30b46423b1dafbeb97ec6c1b86725e3160567e05c13"
|
|
7706
7706
|
},
|
|
7707
7707
|
{
|
|
7708
7708
|
"path": "package.json",
|
|
7709
7709
|
"mode": "0000644",
|
|
7710
|
-
"sha256": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
+
});
|