@bongos/core 1.19.498 → 1.19.499
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.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.499",
|
|
6
|
+
"core_contract": "1.19.499",
|
|
7
|
+
"source_commit": "92440689380dd093245f653913e00057ab676868",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-03T14:
|
|
9
|
+
"built_at": "2026-09-03T14:54:10.717Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 425,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 2391,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "1f214a204898d5d41ef2b9c79430c2cec5608952fa20bc374537fe257d6f2399",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
{
|
|
228
228
|
"path": ".claude/skills/planning-session/SKILL.md",
|
|
229
229
|
"mode": "0000644",
|
|
230
|
-
"sha256": "
|
|
230
|
+
"sha256": "02aea92c35c8ae64eff029bb3dc9579a871cb47321a058693c71206af993132e"
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
"path": ".claude/skills/priority-session/SKILL.md",
|
|
@@ -2567,7 +2567,7 @@
|
|
|
2567
2567
|
{
|
|
2568
2568
|
"path": "docs/module-api-changelog.md",
|
|
2569
2569
|
"mode": "0000644",
|
|
2570
|
-
"sha256": "
|
|
2570
|
+
"sha256": "2736ad8ab2cd06e48417ccb88beca58bb953d6f68f40fa63a4180a48d6e321ba"
|
|
2571
2571
|
},
|
|
2572
2572
|
{
|
|
2573
2573
|
"path": "docs/modules-contract.md",
|
|
@@ -7212,12 +7212,12 @@
|
|
|
7212
7212
|
{
|
|
7213
7213
|
"path": "package-lock.json",
|
|
7214
7214
|
"mode": "0000644",
|
|
7215
|
-
"sha256": "
|
|
7215
|
+
"sha256": "018f166ff7ebab32a697e6f553676548f805dde401ba5263ab2ee996369d57cf"
|
|
7216
7216
|
},
|
|
7217
7217
|
{
|
|
7218
7218
|
"path": "package.json",
|
|
7219
7219
|
"mode": "0000644",
|
|
7220
|
-
"sha256": "
|
|
7220
|
+
"sha256": "5dd640ce5899ce2a2b2d1001e8ed3a93edf78b1e3b9f6eacfd1797e323d3e125"
|
|
7221
7221
|
},
|
|
7222
7222
|
{
|
|
7223
7223
|
"path": "public-docs/index.html",
|
|
@@ -8887,7 +8887,7 @@
|
|
|
8887
8887
|
{
|
|
8888
8888
|
"path": "src/module-api.js",
|
|
8889
8889
|
"mode": "0000644",
|
|
8890
|
-
"sha256": "
|
|
8890
|
+
"sha256": "143b72cab0ab221d852a32519a476a29cdd9bb6f50fedb29d04cffc0ccf1faf3"
|
|
8891
8891
|
},
|
|
8892
8892
|
{
|
|
8893
8893
|
"path": "src/module-loader/catalog.js",
|
|
@@ -10982,7 +10982,7 @@
|
|
|
10982
10982
|
{
|
|
10983
10983
|
"path": "tests/planning_session_skill.mjs",
|
|
10984
10984
|
"mode": "0000644",
|
|
10985
|
-
"sha256": "
|
|
10985
|
+
"sha256": "1f2d52192e96bc1f2693a4b1a8458bc0f533e9c971c9ac42d9199e11d01eec48"
|
|
10986
10986
|
},
|
|
10987
10987
|
{
|
|
10988
10988
|
"path": "tests/platform_boot.mjs",
|
|
@@ -84,6 +84,17 @@ This is where the user sees what they're shaping. Do not skip this — criteria
|
|
|
84
84
|
|
|
85
85
|
Surface the list to the user and get a per-goal carry/replace decision before writing criteria — the carry-forward goals shape this version's goal set.
|
|
86
86
|
|
|
87
|
+
### Phase 1.5 — Map the mechanism (process-change sessions only) — task 1003075
|
|
88
|
+
|
|
89
|
+
**Run this phase when the session is scoped to CHANGING how an existing mechanism already works** (a redesign, not a net-new feature with nothing live to replace) — skip it for a purely additive version with no prior mechanism in play. The precedent is the 2026-08-17 idea-routing session (goal 1000071): a subagent mapping the LIVE capture→triage→promote path before Phase 2 turned "route bugs to goals" into the capture-time-promotion design and resolved the bugs-vs-features question almost by itself — the session's own retro named it the highest-value step, and until now the skill only implied it.
|
|
90
|
+
|
|
91
|
+
1. **Input.** Name the subsystem(s) the version is about to change, and the entry points you already know (a route file, a CLI script, a module's public function) as the subagent's starting point.
|
|
92
|
+
2. **Spawn a read-only mapping subagent** (`Explore` or `general-purpose`, `model: sonnet` or higher per CLAUDE.md's subagent routing — this feeds a design decision, not plumbing) with a prompt asking it to trace the CURRENT live mechanism end-to-end: every entry point that touches it, the chokepoint(s) data already funnels through, and any function/route already doing part of what the new design needs. Ask for file:line references, not prose summaries — the output has to be citable in the spec.
|
|
93
|
+
3. **Output artifact — the mechanics map.** A short structured list: each chokepoint or reusable function/route, with a file:line and a one-line note on what it does today. Write it down (in the session, or straight into the spec draft) rather than letting it live only in the subagent's reply.
|
|
94
|
+
4. **Consumed by:**
|
|
95
|
+
- **Phase 2 (Criteria)** — a chokepoint the map surfaces (e.g. "every capture vector funnels through one function") often turns directly into a criterion, or reframes one that would otherwise be written as a task list.
|
|
96
|
+
- **Phase 3 (the spec)** — the map becomes the spec's **"Reuse, do not rebuild"** table under *Design decisions & assumptions*: one row per chokepoint/function, `existing → how the new design uses it`. See `docs/specs/<redacted>.md` §Design decisions for the worked example.
|
|
97
|
+
|
|
87
98
|
### Phase 2 — Criteria
|
|
88
99
|
|
|
89
100
|
Criteria are the version's done-when. Strong criteria are **outcomes** (broad enough to anchor many tasks), not **task lists** (so narrow they only anchor a few). Five to nine criteria is the typical band; ours have been 7-9.
|
|
@@ -1433,5 +1433,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
1433
1433
|
landed since 1.19.496 with no explicit bump. run 33767382661. (task 1002620)
|
|
1434
1434
|
1.19.498 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1435
1435
|
landed since 1.19.497 with no explicit bump. run 33768753719. (task 1002620)
|
|
1436
|
+
1.19.499 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1437
|
+
landed since 1.19.498 with no explicit bump. run 33769500709. (task 1002620)
|
|
1436
1438
|
---------------------------------------------------------------------------
|
|
1437
1439
|
```
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.499",
|
|
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.499",
|
|
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.499",
|
|
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",
|
package/src/module-api.js
CHANGED
|
@@ -45,7 +45,7 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
|
|
|
45
45
|
// there. scripts/gds/bump-version.js still rewrites the literal below; it appends
|
|
46
46
|
// the entry to that file. Look for a version's history there, not here.
|
|
47
47
|
// ---------------------------------------------------------------------------
|
|
48
|
-
const CORE_VERSION = '1.19.
|
|
48
|
+
const CORE_VERSION = '1.19.499'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
|
|
49
49
|
|
|
50
50
|
// A namespaced logger so a module's log lines are attributable + consistent.
|
|
51
51
|
// Usage: const log = api.logger('dev-box'); log.info('mounted');
|
|
@@ -53,5 +53,43 @@ test('step 5 (run the seed script) points at the self-check rather than treating
|
|
|
53
53
|
assert.ok(step5.slice(0, 400).includes('verifySeedCriteriaLinks'), 'step 5 references the self-check by name');
|
|
54
54
|
});
|
|
55
55
|
|
|
56
|
+
// --- task 1003075: the mechanics-map subagent becomes a named step ---------
|
|
57
|
+
|
|
58
|
+
test('a named "Map the mechanism" step exists between Phase 1 and Phase 2, in order', () => {
|
|
59
|
+
const phase1 = SKILL.indexOf('### Phase 1 —');
|
|
60
|
+
const mapStep = SKILL.indexOf('### Phase 1.5 — Map the mechanism');
|
|
61
|
+
const phase2 = SKILL.indexOf('### Phase 2 —');
|
|
62
|
+
assert.ok(phase1 !== -1 && mapStep !== -1 && phase2 !== -1, 'all three headings must exist');
|
|
63
|
+
assert.ok(phase1 < mapStep && mapStep < phase2, 'Phase 1.5 must sit between Phase 1 and Phase 2');
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
test('the mechanics-map step names its input, its output artifact, and where the output is consumed', () => {
|
|
67
|
+
const start = NORM.indexOf('Phase 1.5 — Map the mechanism');
|
|
68
|
+
const end = NORM.indexOf('Phase 2 — Criteria', start);
|
|
69
|
+
const section = NORM.slice(start, end === -1 ? undefined : end);
|
|
70
|
+
assert.ok(section.length > 0, 'the Phase 1.5 section must be non-empty');
|
|
71
|
+
assert.ok(/\bInput\b/.test(section), 'names its input');
|
|
72
|
+
assert.ok(section.includes('mechanics map'), 'names its output artifact (the mechanics map)');
|
|
73
|
+
assert.ok(/\bConsumed by\b/.test(section), 'names where the output is consumed');
|
|
74
|
+
assert.ok(section.includes('Phase 2') && section.includes('Phase 3'), 'names the specific later steps that consume it');
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test('the mechanics-map step names the subagent mechanism and the retro precedent that motivated it', () => {
|
|
78
|
+
const start = NORM.indexOf('Phase 1.5 — Map the mechanism');
|
|
79
|
+
const end = NORM.indexOf('Phase 2 — Criteria', start);
|
|
80
|
+
const section = NORM.slice(start, end === -1 ? undefined : end);
|
|
81
|
+
assert.ok(section.includes('subagent'), 'names a subagent as the mechanism');
|
|
82
|
+
assert.ok(section.includes('goal 1000071'), 'cites the idea-routing session as the precedent');
|
|
83
|
+
assert.ok(section.includes('task 1003075'));
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
test('the step is scoped to process-change sessions, not every planning session', () => {
|
|
87
|
+
const start = NORM.indexOf('Phase 1.5 — Map the mechanism');
|
|
88
|
+
const end = NORM.indexOf('Phase 2 — Criteria', start);
|
|
89
|
+
const section = NORM.slice(start, end === -1 ? undefined : end);
|
|
90
|
+
assert.ok(/process-change/i.test(section));
|
|
91
|
+
assert.ok(/skip/i.test(section), 'says explicitly when to skip it');
|
|
92
|
+
});
|
|
93
|
+
|
|
56
94
|
console.log(`\nplanning_session_skill: ${passed} passed, ${failed} failed`);
|
|
57
95
|
if (failed > 0) process.exit(1);
|