@productbrain/cli 0.1.0-beta.9398 → 0.1.0-beta.9413
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/dist/__tests__/collection-registry-seed-drift.test.js +16 -21
- package/dist/__tests__/collection-registry-seed-drift.test.js.map +1 -1
- package/dist/lib/collectionRegistry.d.ts.map +1 -1
- package/dist/lib/collectionRegistry.js +6 -14
- package/dist/lib/collectionRegistry.js.map +1 -1
- package/package.json +1 -1
|
@@ -31,11 +31,10 @@
|
|
|
31
31
|
*
|
|
32
32
|
* Retirements — the inverse of a carve-out: canonical still declares these rows (they
|
|
33
33
|
* describe the classifier's day-zero prompt inputs, unrelated to catalog retirement), but
|
|
34
|
-
* SEED must NOT route a
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* canonical side of the comparison too, since SEED deliberately no longer carries them.
|
|
34
|
+
* SEED must NOT route a prefix to a retired drawer (P3b U0 review round 2, TASK-401; WP-780,
|
|
35
|
+
* DEC-1962, PR #1543 review). The retired set is read from the catalog file
|
|
36
|
+
* (dev-system-collections.json, rows carrying retiredAt), never a hand list, and excluded from
|
|
37
|
+
* the canonical side of the comparison.
|
|
39
38
|
*
|
|
40
39
|
* CLI tests run with the repo root as the vitest root; the canonical source is
|
|
41
40
|
* reached relative to this test file (same pattern as coaching-mirror-drift).
|
|
@@ -55,17 +54,13 @@ const CARVE_OUTS = [
|
|
|
55
54
|
{ slug: 'vision', idPrefix: 'VIS' },
|
|
56
55
|
{ slug: 'purpose', idPrefix: 'PUR' },
|
|
57
56
|
];
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
{ slug: 'features', idPrefix: 'FEAT' },
|
|
66
|
-
{ slug: 'audiences', idPrefix: 'AUD' },
|
|
67
|
-
{ slug: 'opportunities', idPrefix: 'OPP' },
|
|
68
|
-
];
|
|
57
|
+
/** Collections the catalog marks retired (WP-780, DEC-1962): the canonical classifier registry still declares
|
|
58
|
+
* them (a separate, unrelated concept), but SEED must not offer their prefix as an offline route to a retired
|
|
59
|
+
* drawer. Read from the catalog file — the one decider of retirement. */
|
|
60
|
+
const CATALOG_PATH = join(__dirname, '..', '..', '..', '..', 'dev-system-collections.json');
|
|
61
|
+
const RETIRED_SLUGS = new Set(JSON.parse(readFileSync(CATALOG_PATH, 'utf-8'))
|
|
62
|
+
.filter((row) => row.retiredAt !== undefined && row.retiredAt !== null)
|
|
63
|
+
.map((row) => row.slug));
|
|
69
64
|
/** Extraction rule: each SEED_CLASSIFICATION_REGISTRY entry is a one-line object
|
|
70
65
|
* declaring `slug: '<s>'` and `idPrefix: '<p>'`. Extract only within the array. */
|
|
71
66
|
function extractCanonicalProjection(source) {
|
|
@@ -88,7 +83,7 @@ describe('collectionRegistry SEED content pin (WP-480 S2)', () => {
|
|
|
88
83
|
expect(canonicalAll.length).toBeGreaterThanOrEqual(20);
|
|
89
84
|
const project = (rows) => rows.map((r) => `${r.slug} → ${r.idPrefix}`).sort();
|
|
90
85
|
const isCarveOut = (r) => CARVE_OUTS.some((c) => r.slug === c.slug && r.idPrefix === c.idPrefix);
|
|
91
|
-
const isRetired = (r) =>
|
|
86
|
+
const isRetired = (r) => RETIRED_SLUGS.has(r.slug);
|
|
92
87
|
const seedWithoutCarveOuts = SEED.filter((r) => !isCarveOut(r));
|
|
93
88
|
const canonical = canonicalAll.filter((r) => !isRetired(r));
|
|
94
89
|
expect(project(seedWithoutCarveOuts)).toEqual(project(canonical));
|
|
@@ -98,10 +93,10 @@ describe('collectionRegistry SEED content pin (WP-480 S2)', () => {
|
|
|
98
93
|
expect(SEED.some((r) => r.slug === carveOut.slug && r.idPrefix === carveOut.idPrefix), `expected SEED to still carry the ${carveOut.slug} → ${carveOut.idPrefix} legacy-alias row`).toBe(true);
|
|
99
94
|
}
|
|
100
95
|
});
|
|
101
|
-
it('every retired
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
96
|
+
it('every collection the catalog marks retired is absent from SEED (no offline prefix route to a retired drawer)', () => {
|
|
97
|
+
expect(RETIRED_SLUGS.size).toBeGreaterThanOrEqual(24); // the 24 retired catalog rows today (WP-780)
|
|
98
|
+
const routed = SEED.filter((r) => RETIRED_SLUGS.has(r.slug)).map((r) => `${r.slug} → ${r.idPrefix}`);
|
|
99
|
+
expect(routed, 'SEED routes a prefix to a collection the catalog marks retired').toEqual([]);
|
|
105
100
|
});
|
|
106
101
|
});
|
|
107
102
|
//# sourceMappingURL=collection-registry-seed-drift.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-registry-seed-drift.test.js","sourceRoot":"","sources":["../../src/__tests__/collection-registry-seed-drift.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"collection-registry-seed-drift.test.js","sourceRoot":"","sources":["../../src/__tests__/collection-registry-seed-drift.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionRegistry.d.ts","sourceRoot":"","sources":["../../src/lib/collectionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;uBAKmB;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"collectionRegistry.d.ts","sourceRoot":"","sources":["../../src/lib/collectionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;uBAKmB;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,eAAO,MAAM,IAAI,EAAE,cAAc,EA+BhC,CAAC;AAIF;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAkBhE;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAO7E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcnF"}
|
|
@@ -33,27 +33,23 @@ import { kernelCall } from './client.js';
|
|
|
33
33
|
*/
|
|
34
34
|
// WP-690 S7 (TASK-120, twice-corrected): pinned to
|
|
35
35
|
// convex/lib/seedClassificationRegistry.ts's corrected 30 -> 27 list (see that file's header for
|
|
36
|
-
// the full correction history).
|
|
37
|
-
// (
|
|
38
|
-
//
|
|
39
|
-
//
|
|
36
|
+
// the full correction history).
|
|
37
|
+
// WP-780 (DEC-1962, PR #1543 review): SEED carries no slug the catalog (dev-system-collections.json) marks
|
|
38
|
+
// retired — a prefixed capture would skip classification only to be refused by the server's retirement check.
|
|
39
|
+
// principles, standards, business-rules, architecture, maps, flows, milestones, workstreams and initiatives are
|
|
40
|
+
// removed with the collections; collection-registry-seed-drift.test.ts reads retirement from the catalog.
|
|
40
41
|
// P3b U0 review round 2 (TASK-401, WP-780): 'features'/'audiences'/'opportunities' (pack-owned,
|
|
41
42
|
// same MODULE_ONTOLOGY_PACKS) and 'policies'/'patterns' are now retired in the catalog — removed
|
|
42
43
|
// from SEED below, not merely pack-owned-and-kept.
|
|
43
44
|
export const SEED = [
|
|
44
|
-
{ slug: 'principles', idPrefix: 'PRI' },
|
|
45
|
-
{ slug: 'standards', idPrefix: 'STD' },
|
|
46
|
-
{ slug: 'business-rules', idPrefix: 'BR' },
|
|
47
45
|
// P3b U0 review round 2 (Codex, PRRT_kwDORS4ils6lyk4l, TASK-401, WP-780): 'policies' (POL),
|
|
48
46
|
// 'patterns' (PAT) and 'features' (FEAT) removed — all three retired in the catalog; a
|
|
49
47
|
// prefixed capture would skip classification only to have the server's retirement check
|
|
50
48
|
// refuse the write.
|
|
51
49
|
{ slug: 'glossary', idPrefix: 'GLO' },
|
|
52
|
-
{ slug: 'architecture', idPrefix: 'ARCH' },
|
|
53
50
|
{ slug: 'decisions', idPrefix: 'DEC' },
|
|
54
51
|
{ slug: 'strategy', idPrefix: 'STR', defaultCanonicalKey: 'strategy' }, // WP-707 S1 (DEC-1622): strategy is a normal 1:1 collection now — round 3 ruling #13's generalized --entry-type derivation exercises this kind (never a hand-picked branch).
|
|
55
52
|
{ slug: 'semantic-types', idPrefix: 'ST' },
|
|
56
|
-
{ slug: 'maps', idPrefix: 'MAP' },
|
|
57
53
|
{ slug: 'tensions', idPrefix: 'TEN' },
|
|
58
54
|
{ slug: 'teams', idPrefix: 'TEAM' },
|
|
59
55
|
{ slug: 'roles', idPrefix: 'ROL' },
|
|
@@ -67,9 +63,6 @@ export const SEED = [
|
|
|
67
63
|
// capture-prefix routing both need them present even during a chain.listCollections outage.
|
|
68
64
|
{ slug: 'vision', idPrefix: 'VIS', defaultCanonicalKey: 'vision' },
|
|
69
65
|
{ slug: 'purpose', idPrefix: 'PUR', defaultCanonicalKey: 'purpose' },
|
|
70
|
-
{ slug: 'milestones', idPrefix: 'MIL' },
|
|
71
|
-
{ slug: 'workstreams', idPrefix: 'WS' },
|
|
72
|
-
{ slug: 'initiatives', idPrefix: 'INI' },
|
|
73
66
|
{ slug: 'work-packages', idPrefix: 'WP' },
|
|
74
67
|
{ slug: 'work-packages', idPrefix: 'BET' }, // legacy alias — BET-230 rename backward compat
|
|
75
68
|
{ slug: 'objectives', idPrefix: 'OBJ', defaultCanonicalKey: 'objective' }, // WP-686 S3 (TASK-89) slug rename + S5 (TASK-91) idPrefix flip in place; old KEY-<n> ENTRY ids resolve via entryIdAliases regardless
|
|
@@ -78,8 +71,7 @@ export const SEED = [
|
|
|
78
71
|
{ slug: 'products', idPrefix: 'PROD' },
|
|
79
72
|
// P3b U0 review round 2 (Codex, PRRT_kwDORS4ils6lyk4l, TASK-401, WP-780): 'audiences'
|
|
80
73
|
// (AUD) and 'opportunities' (OPP) removed — same reason as policies/patterns above.
|
|
81
|
-
{ slug: '
|
|
82
|
-
{ slug: 'rules', idPrefix: 'RULE' }, // PR #778 review round 2 (P2, PRRT_kwDORS4ils6c4_9J): legacy-alias-shaped carve-out — 'rules' is launch-14-v1's fold target (SEED_TYPE_REGISTRY, not SEED_CLASSIFICATION_REGISTRY, so it has no canonical {slug,idPrefix} row to pin against), but a launch-only workspace needs "RULE: ..." to take the prefix fast path even during a transient chain.listCollections failure. Additive only — the pre-existing STD/BR/PRI/PAT/ARCH rows stay too, since a legacy-bridge workspace (PR #778 round 1) can still legitimately resolve those.
|
|
74
|
+
{ slug: 'rules', idPrefix: 'RULE' }, // PR #778 review round 2 (P2, PRRT_kwDORS4ils6c4_9J): legacy-alias-shaped carve-out — 'rules' is launch-14-v1's fold target (SEED_TYPE_REGISTRY, not SEED_CLASSIFICATION_REGISTRY, so it has no canonical {slug,idPrefix} row to pin against), but a launch-only workspace needs "RULE: ..." to take the prefix fast path even during a transient chain.listCollections failure. The STD/BR/PRI/PAT/ARCH rows that used to sit beside it are gone with their retired collections (WP-780).
|
|
83
75
|
];
|
|
84
76
|
let _cache = null;
|
|
85
77
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionRegistry.js","sourceRoot":"","sources":["../../src/lib/collectionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmBzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mDAAmD;AACnD,iGAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"collectionRegistry.js","sourceRoot":"","sources":["../../src/lib/collectionRegistry.ts"],"names":[],"mappings":"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"}
|