@productbrain/cli 0.1.0-beta.15 → 0.1.0-beta.20
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/README.md +61 -0
- package/dist/__tests__/capture.test.js +49 -0
- package/dist/__tests__/capture.test.js.map +1 -1
- package/dist/__tests__/handshake.test.js +18 -1
- package/dist/__tests__/handshake.test.js.map +1 -1
- package/dist/__tests__/orient.test.d.ts +2 -0
- package/dist/__tests__/orient.test.d.ts.map +1 -0
- package/dist/__tests__/orient.test.js +143 -0
- package/dist/__tests__/orient.test.js.map +1 -0
- package/dist/__tests__/promote.test.js +39 -5
- package/dist/__tests__/promote.test.js.map +1 -1
- package/dist/__tests__/repo-detect.test.js +97 -1
- package/dist/__tests__/repo-detect.test.js.map +1 -1
- package/dist/__tests__/update.test.js +29 -4
- package/dist/__tests__/update.test.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +62 -5
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/codex-prep.d.ts +12 -0
- package/dist/commands/codex-prep.d.ts.map +1 -0
- package/dist/commands/codex-prep.js +118 -0
- package/dist/commands/codex-prep.js.map +1 -0
- package/dist/commands/handshake.d.ts +6 -0
- package/dist/commands/handshake.d.ts.map +1 -1
- package/dist/commands/handshake.js +154 -11
- package/dist/commands/handshake.js.map +1 -1
- package/dist/commands/orient.d.ts +100 -1
- package/dist/commands/orient.d.ts.map +1 -1
- package/dist/commands/orient.js +3 -1
- package/dist/commands/orient.js.map +1 -1
- package/dist/commands/promote.d.ts.map +1 -1
- package/dist/commands/promote.js +28 -1
- package/dist/commands/promote.js.map +1 -1
- package/dist/commands/update.d.ts +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +23 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/formatters/capture.d.ts +3 -3
- package/dist/formatters/capture.d.ts.map +1 -1
- package/dist/formatters/capture.js +2 -1
- package/dist/formatters/capture.js.map +1 -1
- package/dist/formatters/entry.d.ts +0 -4
- package/dist/formatters/entry.d.ts.map +1 -1
- package/dist/formatters/entry.js +16 -13
- package/dist/formatters/entry.js.map +1 -1
- package/dist/formatters/handshake.d.ts +2 -0
- package/dist/formatters/handshake.d.ts.map +1 -1
- package/dist/formatters/handshake.js +10 -1
- package/dist/formatters/handshake.js.map +1 -1
- package/dist/formatters/orient.d.ts +99 -1
- package/dist/formatters/orient.d.ts.map +1 -1
- package/dist/formatters/orient.js +121 -17
- package/dist/formatters/orient.js.map +1 -1
- package/dist/formatters/search.d.ts +0 -4
- package/dist/formatters/search.d.ts.map +1 -1
- package/dist/formatters/search.js +4 -1
- package/dist/formatters/search.js.map +1 -1
- package/dist/formatters/update.d.ts.map +1 -1
- package/dist/formatters/update.js +2 -0
- package/dist/formatters/update.js.map +1 -1
- package/dist/generators/adapters.d.ts +1 -0
- package/dist/generators/adapters.d.ts.map +1 -1
- package/dist/generators/adapters.js +48 -0
- package/dist/generators/adapters.js.map +1 -1
- package/dist/generators/adapters.test.d.ts +2 -0
- package/dist/generators/adapters.test.d.ts.map +1 -0
- package/dist/generators/adapters.test.js +27 -0
- package/dist/generators/adapters.test.js.map +1 -0
- package/dist/generators/portable-knowledge.d.ts +58 -5
- package/dist/generators/portable-knowledge.d.ts.map +1 -1
- package/dist/generators/portable-knowledge.js +223 -13
- package/dist/generators/portable-knowledge.js.map +1 -1
- package/dist/generators/portable-knowledge.test.js +529 -1
- package/dist/generators/portable-knowledge.test.js.map +1 -1
- package/dist/index.js +24 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/repo-detect.d.ts +19 -0
- package/dist/lib/repo-detect.d.ts.map +1 -1
- package/dist/lib/repo-detect.js +25 -0
- package/dist/lib/repo-detect.js.map +1 -1
- package/dist/lib/strip.d.ts +1 -0
- package/dist/lib/strip.d.ts.map +1 -1
- package/dist/lib/strip.js +15 -0
- package/dist/lib/strip.js.map +1 -1
- package/package.json +3 -2
- package/templates/general/code-integrity.md +11 -0
- package/templates/general/getting-started.md +12 -0
- package/templates/node-ts/code-integrity.md +13 -0
- package/templates/node-ts/testing.md +12 -0
- package/templates/python/code-integrity.md +13 -0
- package/templates/python/testing.md +12 -0
|
@@ -18,20 +18,120 @@ const LEVEL_HIERARCHY = {
|
|
|
18
18
|
};
|
|
19
19
|
const VALID_LEVELS = new Set(Object.keys(LEVEL_HIERARCHY));
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* Maps workspace stage to the maximum allowed HandshakeLevel.
|
|
22
|
+
* Stages not listed here apply no cap (fail-open for unknown stages).
|
|
23
|
+
* Note: 'beginner' level allows only 'core' items; 'intermediate' allows core + intermediate.
|
|
24
|
+
*/
|
|
25
|
+
export const STAGE_TO_MAX_LEVEL = {
|
|
26
|
+
blank: 'beginner',
|
|
27
|
+
seed: 'intermediate',
|
|
28
|
+
grounded: 'expert',
|
|
29
|
+
connected: 'expert',
|
|
30
|
+
critical: 'expert',
|
|
31
|
+
};
|
|
32
|
+
/** Level ordering used to pick the more restrictive of two levels. */
|
|
33
|
+
export const LEVEL_ORDER = ['beginner', 'intermediate', 'expert'];
|
|
34
|
+
/**
|
|
35
|
+
* Pick the more restrictive of two levels.
|
|
36
|
+
* If either is undefined, returns the other (or undefined if both are).
|
|
37
|
+
*/
|
|
38
|
+
function capLevel(requested, cap) {
|
|
39
|
+
if (!requested && !cap)
|
|
40
|
+
return undefined;
|
|
41
|
+
if (!requested)
|
|
42
|
+
return cap;
|
|
43
|
+
if (!cap)
|
|
44
|
+
return requested;
|
|
45
|
+
const requestedIdx = LEVEL_ORDER.indexOf(requested);
|
|
46
|
+
const capIdx = LEVEL_ORDER.indexOf(cap);
|
|
47
|
+
return LEVEL_ORDER[Math.min(requestedIdx, capIdx)];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Filter items by graduated level, with optional workspace stage-gating.
|
|
51
|
+
* - If requestedLevel is undefined/null AND stage provides no cap: return ALL items (backward compat).
|
|
23
52
|
* - Items with no `level` field: always included (backward compat).
|
|
24
|
-
* -
|
|
53
|
+
* - Stage caps the effective level: blank→beginner, seed→intermediate, grounded/connected/critical→expert.
|
|
54
|
+
* - If stage is unknown or null: no cap applied (fail-open).
|
|
55
|
+
* - The effective level is min(requestedLevel, stageCap) — most restrictive wins.
|
|
25
56
|
*/
|
|
26
|
-
export function filterByLevel(items, requestedLevel) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if
|
|
30
|
-
|
|
57
|
+
export function filterByLevel(items, requestedLevel, stage) {
|
|
58
|
+
// Resolve stage cap (fail-open for unknown/undefined stage)
|
|
59
|
+
const stageCap = stage ? STAGE_TO_MAX_LEVEL[stage] : undefined;
|
|
60
|
+
// Resolve requested level as typed enum (validate if provided)
|
|
61
|
+
let typedRequested;
|
|
62
|
+
if (requestedLevel) {
|
|
63
|
+
if (!VALID_LEVELS.has(requestedLevel)) {
|
|
64
|
+
throw new Error(`Unknown level "${requestedLevel}". Valid levels: ${[...VALID_LEVELS].join(', ')}`);
|
|
65
|
+
}
|
|
66
|
+
typedRequested = requestedLevel;
|
|
31
67
|
}
|
|
32
|
-
|
|
68
|
+
// Determine effective level (most restrictive)
|
|
69
|
+
const effectiveLevel = capLevel(typedRequested, stageCap);
|
|
70
|
+
// No effective level — return all items (backward compat)
|
|
71
|
+
if (!effectiveLevel)
|
|
72
|
+
return items;
|
|
73
|
+
const allowedLevels = LEVEL_HIERARCHY[effectiveLevel];
|
|
33
74
|
return items.filter((item) => !item.level || allowedLevels.includes(item.level));
|
|
34
75
|
}
|
|
76
|
+
// ── Stage ordering ────────────────────────────────────────────────────
|
|
77
|
+
const STAGE_ORDER = ['blank', 'seed', 'grounded', 'connected', 'critical'];
|
|
78
|
+
/**
|
|
79
|
+
* Evaluate when_* conditions against the workspace profile and repo context.
|
|
80
|
+
* Returns { included, reasons }.
|
|
81
|
+
*
|
|
82
|
+
* Fail-open: if profile is null and profile-dependent conditions are present,
|
|
83
|
+
* the item is included (preserves current behavior when Chain is unavailable).
|
|
84
|
+
*/
|
|
85
|
+
export function evaluateConditions(conditions, profile, repoContext) {
|
|
86
|
+
const hasProfileConditions = conditions.when_minStage !== undefined || conditions.when_minGovernance !== undefined;
|
|
87
|
+
const hasStackCondition = conditions.when_stack !== undefined;
|
|
88
|
+
// No when_* keys at all — always include
|
|
89
|
+
if (!hasProfileConditions && !hasStackCondition) {
|
|
90
|
+
return { included: true, reasons: ['no conditions'] };
|
|
91
|
+
}
|
|
92
|
+
// Fail-open: profile unavailable but profile-dependent conditions present
|
|
93
|
+
if (profile === null && hasProfileConditions) {
|
|
94
|
+
return { included: true, reasons: ['no workspace profile — fail-open'] };
|
|
95
|
+
}
|
|
96
|
+
const reasons = [];
|
|
97
|
+
let included = true;
|
|
98
|
+
// when_stack: evaluated against repoContext (not profile)
|
|
99
|
+
if (conditions.when_stack !== undefined) {
|
|
100
|
+
const needle = conditions.when_stack.toLowerCase();
|
|
101
|
+
const match = repoContext.detectedStack.some((s) => s.toLowerCase() === needle);
|
|
102
|
+
if (!match) {
|
|
103
|
+
included = false;
|
|
104
|
+
reasons.push(`when_stack=${conditions.when_stack} not in detected stack [${repoContext.detectedStack.join(', ')}]`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
reasons.push(`when_stack=${conditions.when_stack} matched`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// when_minStage: profile guaranteed non-null here when this condition is present
|
|
111
|
+
if (conditions.when_minStage !== undefined && profile !== null) {
|
|
112
|
+
const profileIdx = STAGE_ORDER.indexOf(profile.stage);
|
|
113
|
+
const thresholdIdx = STAGE_ORDER.indexOf(conditions.when_minStage);
|
|
114
|
+
if (thresholdIdx === -1 || profileIdx === -1 || profileIdx < thresholdIdx) {
|
|
115
|
+
included = false;
|
|
116
|
+
reasons.push(`when_minStage=${conditions.when_minStage} but workspace stage=${profile.stage}`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
reasons.push(`when_minStage=${conditions.when_minStage} satisfied (stage=${profile.stage})`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// when_minGovernance: profile guaranteed non-null here when this condition is present
|
|
123
|
+
if (conditions.when_minGovernance !== undefined && profile !== null) {
|
|
124
|
+
const threshold = parseInt(conditions.when_minGovernance, 10);
|
|
125
|
+
if (isNaN(threshold) || profile.totalRelations < threshold) {
|
|
126
|
+
included = false;
|
|
127
|
+
reasons.push(`when_minGovernance=${conditions.when_minGovernance} but totalRelations=${profile.totalRelations}`);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
reasons.push(`when_minGovernance=${conditions.when_minGovernance} satisfied (totalRelations=${profile.totalRelations})`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return { included, reasons };
|
|
134
|
+
}
|
|
35
135
|
// ── Frontmatter parser ─────────────────────────────────────────────────
|
|
36
136
|
function parseFrontmatter(raw) {
|
|
37
137
|
const match = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
|
|
@@ -94,7 +194,18 @@ export function readCanonicalSkills(productbrainDir) {
|
|
|
94
194
|
const triggers = arrayFields.get('triggers') ?? [];
|
|
95
195
|
const targets = arrayFields.get('targets');
|
|
96
196
|
const level = fields.get('level');
|
|
97
|
-
|
|
197
|
+
const conditions = {};
|
|
198
|
+
const whenStack = fields.get('when_stack');
|
|
199
|
+
const whenMinStage = fields.get('when_minStage');
|
|
200
|
+
const whenMinGovernance = fields.get('when_minGovernance');
|
|
201
|
+
if (whenStack)
|
|
202
|
+
conditions.when_stack = whenStack;
|
|
203
|
+
if (whenMinStage)
|
|
204
|
+
conditions.when_minStage = whenMinStage;
|
|
205
|
+
if (whenMinGovernance)
|
|
206
|
+
conditions.when_minGovernance = whenMinGovernance;
|
|
207
|
+
const hasConditions = Object.keys(conditions).length > 0;
|
|
208
|
+
skills.push({ name, description, triggers, body, sourcePath: filePath, targets: targets?.length ? targets : undefined, level: level || undefined, conditions: hasConditions ? conditions : undefined });
|
|
98
209
|
}
|
|
99
210
|
return skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
100
211
|
}
|
|
@@ -114,7 +225,18 @@ export function readCanonicalRules(productbrainDir) {
|
|
|
114
225
|
const autoApply = fields.get('autoApply') === 'true';
|
|
115
226
|
const targets = arrayFields.get('targets');
|
|
116
227
|
const level = fields.get('level');
|
|
117
|
-
|
|
228
|
+
const conditions = {};
|
|
229
|
+
const whenStack = fields.get('when_stack');
|
|
230
|
+
const whenMinStage = fields.get('when_minStage');
|
|
231
|
+
const whenMinGovernance = fields.get('when_minGovernance');
|
|
232
|
+
if (whenStack)
|
|
233
|
+
conditions.when_stack = whenStack;
|
|
234
|
+
if (whenMinStage)
|
|
235
|
+
conditions.when_minStage = whenMinStage;
|
|
236
|
+
if (whenMinGovernance)
|
|
237
|
+
conditions.when_minGovernance = whenMinGovernance;
|
|
238
|
+
const hasConditions = Object.keys(conditions).length > 0;
|
|
239
|
+
rules.push({ name, description, scope, autoApply, body, sourcePath: filePath, targets: targets?.length ? targets : undefined, level: level || undefined, conditions: hasConditions ? conditions : undefined });
|
|
118
240
|
}
|
|
119
241
|
return rules.sort((a, b) => a.name.localeCompare(b.name));
|
|
120
242
|
}
|
|
@@ -181,13 +303,101 @@ export function generateCursorRule(rule) {
|
|
|
181
303
|
.replace(/\.productbrain\/skills\/(\S+)\.md/g, '.cursor/skills/$1/SKILL.md');
|
|
182
304
|
return `---
|
|
183
305
|
description: ${rule.description}
|
|
184
|
-
globs: ${rule.scope
|
|
185
|
-
alwaysApply: ${rule.autoApply}
|
|
306
|
+
globs: ${rule.scope || ''}
|
|
307
|
+
alwaysApply: ${!rule.scope && rule.autoApply}
|
|
186
308
|
---
|
|
187
309
|
<!-- ${MARKER} — source: .productbrain/rules/${rule.name}.md -->
|
|
188
310
|
|
|
189
311
|
${body}`;
|
|
190
312
|
}
|
|
313
|
+
// ── Codex generators ───────────────────────────────────────────────────
|
|
314
|
+
/**
|
|
315
|
+
* Generate a Codex skill projection from a canonical skill.
|
|
316
|
+
* This is a repo-local markdown projection, not a separate authoring source.
|
|
317
|
+
*/
|
|
318
|
+
export function generateCodexSkill(skill) {
|
|
319
|
+
const triggerLine = skill.triggers.length > 0
|
|
320
|
+
? `\n\n**Triggers:** ${skill.triggers.map((t) => `\`${t}\``).join(', ')}`
|
|
321
|
+
: '';
|
|
322
|
+
const stripped = stripTransportSections(skill.body, 'codex');
|
|
323
|
+
const body = stripped
|
|
324
|
+
.replace(/\.productbrain\/skills\/(\S+)\.md/g, '.codex/skills/$1.md');
|
|
325
|
+
return `<!-- ${MARKER} — source: .productbrain/skills/${skill.name}.md -->
|
|
326
|
+
|
|
327
|
+
# ${skill.name}
|
|
328
|
+
|
|
329
|
+
${skill.description}${triggerLine}
|
|
330
|
+
|
|
331
|
+
${body}`;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Generate a Codex skill index/router file.
|
|
335
|
+
* AGENTS.md can point here so Codex has one obvious place to find available workflows.
|
|
336
|
+
*/
|
|
337
|
+
export function generateCodexSkillIndex(skills) {
|
|
338
|
+
const primarySkills = skills.filter((skill) => {
|
|
339
|
+
const lower = skill.name.toLowerCase();
|
|
340
|
+
return lower !== 'learnings-template' && !lower.endsWith('-learnings');
|
|
341
|
+
});
|
|
342
|
+
if (primarySkills.length === 0) {
|
|
343
|
+
return `<!-- ${MARKER} — source: generated from .productbrain/skills/*.md -->
|
|
344
|
+
|
|
345
|
+
# Product Brain Skills for Codex
|
|
346
|
+
|
|
347
|
+
No Product Brain skills are currently projected for Codex in this repo.
|
|
348
|
+
`;
|
|
349
|
+
}
|
|
350
|
+
const blocks = primarySkills.map((skill) => {
|
|
351
|
+
const triggerText = skill.triggers.length > 0
|
|
352
|
+
? `Triggers: ${skill.triggers.map((t) => `\`${t}\``).join(', ')}`
|
|
353
|
+
: 'Triggers: none declared';
|
|
354
|
+
return `## ${skill.name}
|
|
355
|
+
|
|
356
|
+
${skill.description}
|
|
357
|
+
|
|
358
|
+
${triggerText}
|
|
359
|
+
|
|
360
|
+
Read: \`.codex/skills/${skill.name}.md\``;
|
|
361
|
+
});
|
|
362
|
+
return `<!-- ${MARKER} — source: generated from .productbrain/skills/*.md -->
|
|
363
|
+
|
|
364
|
+
# Product Brain Skills for Codex
|
|
365
|
+
|
|
366
|
+
When the task matches one of these workflows, read the linked skill file first and follow its protocol.
|
|
367
|
+
Maintenance companions like \`*-learnings\` and \`LEARNINGS-TEMPLATE\` are still projected on disk, but hidden from this index so the primary workflows stay easy to scan.
|
|
368
|
+
|
|
369
|
+
${blocks.join('\n\n')}`;
|
|
370
|
+
}
|
|
371
|
+
const CODEX_DEAD_REFERENCE_PATTERNS = [
|
|
372
|
+
{ pattern: /\bpb\s+(session|orient|get|capture|search|update|handshake|context|constellation)\b/, label: 'pb CLI command' },
|
|
373
|
+
{ pattern: /\bsub-agent\b/i, label: 'sub-agent reference' },
|
|
374
|
+
{ pattern: /\bAgent\s+tool\b/, label: 'Agent tool reference' },
|
|
375
|
+
{ pattern: /\bmcpCall\b/, label: 'mcpCall reference' },
|
|
376
|
+
{ pattern: /\bpb\s+session\s+(start|close)\b/, label: 'pb session lifecycle' },
|
|
377
|
+
];
|
|
378
|
+
/**
|
|
379
|
+
* Validate Codex-projected skills for references to capabilities Codex cannot execute.
|
|
380
|
+
* Scans the transport-stripped body (so claude-only blocks don't false-positive).
|
|
381
|
+
*/
|
|
382
|
+
export function validateCodexSkills(skills) {
|
|
383
|
+
const warnings = [];
|
|
384
|
+
for (const skill of skills) {
|
|
385
|
+
const stripped = stripTransportSections(skill.body, 'codex');
|
|
386
|
+
const lines = stripped.split('\n');
|
|
387
|
+
for (const line of lines) {
|
|
388
|
+
for (const { pattern, label } of CODEX_DEAD_REFERENCE_PATTERNS) {
|
|
389
|
+
if (pattern.test(line)) {
|
|
390
|
+
warnings.push({
|
|
391
|
+
skillName: skill.name,
|
|
392
|
+
pattern: label,
|
|
393
|
+
line: line.trim().slice(0, 80),
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
return warnings;
|
|
400
|
+
}
|
|
191
401
|
// ── Claude Code generators ────────────────────────────────────────────
|
|
192
402
|
/**
|
|
193
403
|
* Generate a Claude Code .md rule from a canonical rule.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable-knowledge.js","sourceRoot":"","sources":["../../src/generators/portable-knowledge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portable-knowledge.js","sourceRoot":"","sources":["../../src/generators/portable-knowledge.ts"],"names":[],"mappings":"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"}
|