@productbrain/cli 0.1.0-beta.18 → 0.1.0-beta.22

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.
Files changed (84) hide show
  1. package/dist/__tests__/adapters.test.d.ts +2 -0
  2. package/dist/__tests__/adapters.test.d.ts.map +1 -0
  3. package/dist/__tests__/adapters.test.js +382 -0
  4. package/dist/__tests__/adapters.test.js.map +1 -0
  5. package/dist/__tests__/batch-transformations.test.d.ts +2 -0
  6. package/dist/__tests__/batch-transformations.test.d.ts.map +1 -0
  7. package/dist/__tests__/batch-transformations.test.js +226 -0
  8. package/dist/__tests__/batch-transformations.test.js.map +1 -0
  9. package/dist/__tests__/repo-detect.test.js +97 -1
  10. package/dist/__tests__/repo-detect.test.js.map +1 -1
  11. package/dist/__tests__/surface-profiles.test.d.ts +2 -0
  12. package/dist/__tests__/surface-profiles.test.d.ts.map +1 -0
  13. package/dist/__tests__/surface-profiles.test.js +89 -0
  14. package/dist/__tests__/surface-profiles.test.js.map +1 -0
  15. package/dist/__tests__/update.test.js +26 -4
  16. package/dist/__tests__/update.test.js.map +1 -1
  17. package/dist/commands/capture.d.ts.map +1 -1
  18. package/dist/commands/capture.js +16 -2
  19. package/dist/commands/capture.js.map +1 -1
  20. package/dist/commands/codex-prep.d.ts +12 -0
  21. package/dist/commands/codex-prep.d.ts.map +1 -0
  22. package/dist/commands/codex-prep.js +118 -0
  23. package/dist/commands/codex-prep.js.map +1 -0
  24. package/dist/commands/handshake.d.ts.map +1 -1
  25. package/dist/commands/handshake.js +167 -17
  26. package/dist/commands/handshake.js.map +1 -1
  27. package/dist/commands/update.d.ts +1 -0
  28. package/dist/commands/update.d.ts.map +1 -1
  29. package/dist/commands/update.js +22 -2
  30. package/dist/commands/update.js.map +1 -1
  31. package/dist/formatters/capture.d.ts +3 -3
  32. package/dist/formatters/capture.d.ts.map +1 -1
  33. package/dist/formatters/capture.js +2 -1
  34. package/dist/formatters/capture.js.map +1 -1
  35. package/dist/formatters/entry.d.ts +0 -4
  36. package/dist/formatters/entry.d.ts.map +1 -1
  37. package/dist/formatters/entry.js +16 -13
  38. package/dist/formatters/entry.js.map +1 -1
  39. package/dist/formatters/handshake.d.ts +2 -0
  40. package/dist/formatters/handshake.d.ts.map +1 -1
  41. package/dist/formatters/handshake.js +9 -0
  42. package/dist/formatters/handshake.js.map +1 -1
  43. package/dist/formatters/search.d.ts +0 -4
  44. package/dist/formatters/search.d.ts.map +1 -1
  45. package/dist/formatters/search.js +4 -1
  46. package/dist/formatters/search.js.map +1 -1
  47. package/dist/formatters/update.d.ts.map +1 -1
  48. package/dist/formatters/update.js +2 -0
  49. package/dist/formatters/update.js.map +1 -1
  50. package/dist/generators/__tests__/surface-profiles.test.d.ts +2 -0
  51. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +1 -0
  52. package/dist/generators/__tests__/surface-profiles.test.js +89 -0
  53. package/dist/generators/__tests__/surface-profiles.test.js.map +1 -0
  54. package/dist/generators/adapters.d.ts +37 -4
  55. package/dist/generators/adapters.d.ts.map +1 -1
  56. package/dist/generators/adapters.js +147 -7
  57. package/dist/generators/adapters.js.map +1 -1
  58. package/dist/generators/portable-knowledge.d.ts +70 -9
  59. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  60. package/dist/generators/portable-knowledge.js +208 -20
  61. package/dist/generators/portable-knowledge.js.map +1 -1
  62. package/dist/generators/portable-knowledge.test.js +457 -1
  63. package/dist/generators/portable-knowledge.test.js.map +1 -1
  64. package/dist/generators/surface-profiles.d.ts +27 -0
  65. package/dist/generators/surface-profiles.d.ts.map +1 -0
  66. package/dist/generators/surface-profiles.js +47 -0
  67. package/dist/generators/surface-profiles.js.map +1 -0
  68. package/dist/index.js +21 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/lib/repo-detect.d.ts +19 -0
  71. package/dist/lib/repo-detect.d.ts.map +1 -1
  72. package/dist/lib/repo-detect.js +25 -0
  73. package/dist/lib/repo-detect.js.map +1 -1
  74. package/dist/lib/strip.d.ts +1 -0
  75. package/dist/lib/strip.d.ts.map +1 -1
  76. package/dist/lib/strip.js +15 -0
  77. package/dist/lib/strip.js.map +1 -1
  78. package/package.json +2 -1
  79. package/templates/general/code-integrity.md +11 -0
  80. package/templates/general/getting-started.md +12 -0
  81. package/templates/node-ts/code-integrity.md +13 -0
  82. package/templates/node-ts/testing.md +12 -0
  83. package/templates/python/code-integrity.md +13 -0
  84. package/templates/python/testing.md +12 -0
@@ -39,7 +39,7 @@ vi.mock('fs', () => ({
39
39
  return [...files];
40
40
  }),
41
41
  }));
42
- import { readCanonicalSkills, shouldEmitToTarget, stripTransportSections, filterByLevel, generateCursorSkill, generateCodexSkill, generateCodexSkillIndex, generateClaudeSkillRouter, } from './portable-knowledge.js';
42
+ import { readCanonicalSkills, readCanonicalRules, shouldEmitToTarget, stripTransportSections, filterByLevel, evaluateConditions, generateCursorSkill, generateCursorRule, generateClaudeRule, generateCodexSkill, generateCodexSkillIndex, generateClaudeSkillRouter, } from './portable-knowledge.js';
43
43
  const PB_DIR = '/tmp/pb-test/.productbrain';
44
44
  describe('readCanonicalSkills', () => {
45
45
  beforeEach(() => {
@@ -427,6 +427,120 @@ describe('generateClaudeSkillRouter (target filtering)', () => {
427
427
  expect(cursorOutput).toContain('universal');
428
428
  });
429
429
  });
430
+ describe('generateCursorRule (scope propagation)', () => {
431
+ const baseRule = {
432
+ name: 'test-rule',
433
+ description: 'A test rule',
434
+ autoApply: true,
435
+ body: '# Rule body content',
436
+ sourcePath: '/tmp/.productbrain/rules/test-rule.md',
437
+ };
438
+ it('emits empty globs and alwaysApply: true when scope is empty string', () => {
439
+ const rule = { ...baseRule, scope: '' };
440
+ const output = generateCursorRule(rule);
441
+ expect(output).toContain('globs: ');
442
+ expect(output).toContain('alwaysApply: true');
443
+ expect(output).toContain('# Rule body content');
444
+ });
445
+ it('emits empty globs and alwaysApply: true when scope is undefined', () => {
446
+ const rule = { ...baseRule };
447
+ const output = generateCursorRule(rule);
448
+ expect(output).toContain('globs: ');
449
+ expect(output).toContain('alwaysApply: true');
450
+ });
451
+ it('emits glob pattern and alwaysApply: false when scope is set', () => {
452
+ const rule = { ...baseRule, scope: 'convex/**/*.ts' };
453
+ const output = generateCursorRule(rule);
454
+ expect(output).toContain('globs: convex/**/*.ts');
455
+ expect(output).toContain('alwaysApply: false');
456
+ });
457
+ it('respects autoApply: false with empty scope', () => {
458
+ const rule = { ...baseRule, autoApply: false, scope: '' };
459
+ const output = generateCursorRule(rule);
460
+ expect(output).toContain('alwaysApply: false');
461
+ });
462
+ it('replaces .productbrain paths with .cursor paths in body', () => {
463
+ const rule = {
464
+ ...baseRule,
465
+ body: 'Read `.productbrain/rules/foo.md` and `.productbrain/skills/bar.md`.',
466
+ };
467
+ const output = generateCursorRule(rule);
468
+ expect(output).toContain('.cursor/rules/foo.mdc');
469
+ expect(output).toContain('.cursor/skills/bar/SKILL.md');
470
+ expect(output).not.toContain('.productbrain/rules/foo.md');
471
+ });
472
+ it('includes source marker comment', () => {
473
+ const output = generateCursorRule(baseRule);
474
+ expect(output).toContain('source: .productbrain/rules/test-rule.md');
475
+ });
476
+ });
477
+ describe('generateClaudeRule (scope propagation)', () => {
478
+ const baseRule = {
479
+ name: 'test-rule',
480
+ description: 'A test rule',
481
+ autoApply: true,
482
+ body: '# Rule body content',
483
+ sourcePath: '/tmp/.productbrain/rules/test-rule.md',
484
+ };
485
+ it('omits paths when scope is empty string', () => {
486
+ const rule = { ...baseRule, scope: '' };
487
+ const output = generateClaudeRule(rule);
488
+ expect(output).not.toContain('paths:');
489
+ expect(output).toContain('description: "A test rule"');
490
+ expect(output).toContain('# Rule body content');
491
+ });
492
+ it('omits paths when scope is undefined', () => {
493
+ const rule = { ...baseRule };
494
+ const output = generateClaudeRule(rule);
495
+ expect(output).not.toContain('paths:');
496
+ });
497
+ it('emits paths array when scope is set', () => {
498
+ const rule = { ...baseRule, scope: 'convex/**/*.ts' };
499
+ const output = generateClaudeRule(rule);
500
+ expect(output).toContain('paths:');
501
+ expect(output).toContain(' - "convex/**/*.ts"');
502
+ });
503
+ it('escapes quotes in description', () => {
504
+ const rule = { ...baseRule, description: 'Rule with "quotes" inside' };
505
+ const output = generateClaudeRule(rule);
506
+ expect(output).toContain('description: "Rule with \\"quotes\\" inside"');
507
+ });
508
+ it('replaces .productbrain paths with .claude paths in body', () => {
509
+ const rule = {
510
+ ...baseRule,
511
+ body: 'Read `.productbrain/rules/foo.md` for details.',
512
+ };
513
+ const output = generateClaudeRule(rule);
514
+ expect(output).toContain('.claude/rules/foo.md');
515
+ expect(output).not.toContain('.productbrain/rules/foo.md');
516
+ });
517
+ it('includes source marker comment', () => {
518
+ const output = generateClaudeRule(baseRule);
519
+ expect(output).toContain('source: .productbrain/rules/test-rule.md');
520
+ });
521
+ });
522
+ describe('generateCodexSkillIndex (empty primary skills)', () => {
523
+ it('shows empty message when all skills are learnings/templates', () => {
524
+ const skills = [
525
+ {
526
+ name: 'retro-learnings',
527
+ description: 'Internal learnings companion.',
528
+ triggers: [],
529
+ body: '# Retro Learnings',
530
+ sourcePath: '/tmp/.productbrain/skills/retro-learnings.md',
531
+ },
532
+ {
533
+ name: 'LEARNINGS-TEMPLATE',
534
+ description: 'Template',
535
+ triggers: [],
536
+ body: '# Template',
537
+ sourcePath: '/tmp/.productbrain/skills/LEARNINGS-TEMPLATE.md',
538
+ },
539
+ ];
540
+ const output = generateCodexSkillIndex(skills);
541
+ expect(output).toContain('No Product Brain skills are currently projected');
542
+ });
543
+ });
430
544
  describe('filterByLevel', () => {
431
545
  const items = [
432
546
  { name: 'core-item', level: 'core' },
@@ -468,4 +582,346 @@ describe('filterByLevel', () => {
468
582
  expect(() => filterByLevel(items, 'unknown')).toThrow('Unknown level "unknown"');
469
583
  });
470
584
  });
585
+ describe('filterByLevel — stage-gating (DEC-443)', () => {
586
+ const items = [
587
+ { name: 'core-item', level: 'core' },
588
+ { name: 'intermediate-item', level: 'intermediate' },
589
+ { name: 'expert-item', level: 'expert' },
590
+ { name: 'no-level-item' },
591
+ ];
592
+ it('stage=blank caps at core even if requestedLevel=expert', () => {
593
+ const result = filterByLevel(items, 'expert', 'blank');
594
+ const names = result.map((i) => i.name);
595
+ expect(names).toContain('core-item');
596
+ expect(names).toContain('no-level-item');
597
+ expect(names).not.toContain('intermediate-item');
598
+ expect(names).not.toContain('expert-item');
599
+ expect(result).toHaveLength(2);
600
+ });
601
+ it('stage=seed caps at intermediate (core + intermediate + no-level)', () => {
602
+ const result = filterByLevel(items, 'expert', 'seed');
603
+ const names = result.map((i) => i.name);
604
+ expect(names).toContain('core-item');
605
+ expect(names).toContain('intermediate-item');
606
+ expect(names).toContain('no-level-item');
607
+ expect(names).not.toContain('expert-item');
608
+ expect(result).toHaveLength(3);
609
+ });
610
+ it('stage=grounded applies no cap — all items returned', () => {
611
+ const result = filterByLevel(items, 'expert', 'grounded');
612
+ expect(result).toHaveLength(4);
613
+ });
614
+ it('stage=connected applies no cap — all items returned', () => {
615
+ const result = filterByLevel(items, 'expert', 'connected');
616
+ expect(result).toHaveLength(4);
617
+ });
618
+ it('stage=undefined (no profile) — no cap, backward compat', () => {
619
+ const result = filterByLevel(items, 'expert', undefined);
620
+ expect(result).toHaveLength(4);
621
+ });
622
+ it('unknown stage — fail-open, no cap applied', () => {
623
+ const result = filterByLevel(items, 'expert', 'unknown-stage');
624
+ expect(result).toHaveLength(4);
625
+ });
626
+ it('no requestedLevel + stage=blank still caps at beginner (core + no-level only)', () => {
627
+ const result = filterByLevel(items, undefined, 'blank');
628
+ const names = result.map((i) => i.name);
629
+ expect(names).toContain('core-item');
630
+ expect(names).toContain('no-level-item');
631
+ expect(names).not.toContain('intermediate-item');
632
+ expect(names).not.toContain('expert-item');
633
+ expect(result).toHaveLength(2);
634
+ });
635
+ });
636
+ describe('evaluateConditions', () => {
637
+ const noProfile = null;
638
+ const profile = {
639
+ stage: 'grounded',
640
+ totalRelations: 10,
641
+ };
642
+ const emptyRepo = { detectedStack: [] };
643
+ const sveltekitRepo = { detectedStack: ['sveltekit', 'typescript'] };
644
+ // 1. No conditions → included
645
+ it('no conditions → included', () => {
646
+ const result = evaluateConditions({}, profile, sveltekitRepo);
647
+ expect(result.included).toBe(true);
648
+ expect(result.reasons).toEqual(['no conditions']);
649
+ });
650
+ // 2. Matching when_stack → included
651
+ it('matching when_stack → included', () => {
652
+ const result = evaluateConditions({ when_stack: 'sveltekit' }, profile, sveltekitRepo);
653
+ expect(result.included).toBe(true);
654
+ expect(result.reasons.some((r) => r.includes('matched'))).toBe(true);
655
+ });
656
+ // 3. Non-matching when_stack → excluded with reason
657
+ it('non-matching when_stack → excluded with reason', () => {
658
+ const result = evaluateConditions({ when_stack: 'nextjs' }, profile, sveltekitRepo);
659
+ expect(result.included).toBe(false);
660
+ expect(result.reasons.some((r) => r.includes('when_stack=nextjs'))).toBe(true);
661
+ });
662
+ // 4. when_stack case-insensitive matching
663
+ it('when_stack is case-insensitive', () => {
664
+ const result = evaluateConditions({ when_stack: 'SvelteKit' }, profile, { detectedStack: ['sveltekit'] });
665
+ expect(result.included).toBe(true);
666
+ });
667
+ // 5. when_minStage ordering: blank < seed < grounded < connected < critical
668
+ it('when_minStage ordering: stage below threshold → excluded', () => {
669
+ const seedProfile = { stage: 'seed', totalRelations: 10 };
670
+ const result = evaluateConditions({ when_minStage: 'grounded' }, seedProfile, emptyRepo);
671
+ expect(result.included).toBe(false);
672
+ expect(result.reasons.some((r) => r.includes('when_minStage=grounded'))).toBe(true);
673
+ });
674
+ // 6. when_minStage with stage below threshold → excluded
675
+ it('when_minStage blank < connected threshold → excluded', () => {
676
+ const blankProfile = { stage: 'blank', totalRelations: 0 };
677
+ const result = evaluateConditions({ when_minStage: 'connected' }, blankProfile, emptyRepo);
678
+ expect(result.included).toBe(false);
679
+ });
680
+ // 7. when_minStage with stage at threshold → included
681
+ it('when_minStage with stage exactly at threshold → included', () => {
682
+ const result = evaluateConditions({ when_minStage: 'grounded' }, profile, emptyRepo);
683
+ expect(result.included).toBe(true);
684
+ expect(result.reasons.some((r) => r.includes('satisfied'))).toBe(true);
685
+ });
686
+ // Also verify stages above threshold pass
687
+ it('when_minStage with stage above threshold → included', () => {
688
+ const criticalProfile = { stage: 'critical', totalRelations: 10 };
689
+ const result = evaluateConditions({ when_minStage: 'grounded' }, criticalProfile, emptyRepo);
690
+ expect(result.included).toBe(true);
691
+ });
692
+ // 8. when_minGovernance with enough relations → included
693
+ it('when_minGovernance with enough relations → included', () => {
694
+ const result = evaluateConditions({ when_minGovernance: '5' }, profile, emptyRepo);
695
+ expect(result.included).toBe(true);
696
+ expect(result.reasons.some((r) => r.includes('satisfied'))).toBe(true);
697
+ });
698
+ // 9. when_minGovernance with too few → excluded
699
+ it('when_minGovernance with too few relations → excluded', () => {
700
+ const lowRelProfile = { stage: 'grounded', totalRelations: 3 };
701
+ const result = evaluateConditions({ when_minGovernance: '5' }, lowRelProfile, emptyRepo);
702
+ expect(result.included).toBe(false);
703
+ expect(result.reasons.some((r) => r.includes('when_minGovernance=5'))).toBe(true);
704
+ });
705
+ // 10. Multiple conditions: all pass → included
706
+ it('multiple conditions: all pass → included', () => {
707
+ const result = evaluateConditions({ when_stack: 'sveltekit', when_minStage: 'seed', when_minGovernance: '5' }, profile, sveltekitRepo);
708
+ expect(result.included).toBe(true);
709
+ });
710
+ // 11. Multiple conditions: one fails → excluded (AND semantics)
711
+ it('multiple conditions: one fails → excluded', () => {
712
+ const result = evaluateConditions({ when_stack: 'sveltekit', when_minStage: 'critical' }, profile, // stage=grounded, below critical
713
+ sveltekitRepo);
714
+ expect(result.included).toBe(false);
715
+ expect(result.reasons.some((r) => r.includes('when_minStage=critical'))).toBe(true);
716
+ });
717
+ // 12. Null profile + when_minStage → included (fail-open)
718
+ it('null profile with when_minStage → fail-open (included)', () => {
719
+ const result = evaluateConditions({ when_minStage: 'grounded' }, noProfile, emptyRepo);
720
+ expect(result.included).toBe(true);
721
+ expect(result.reasons.some((r) => r.includes('fail-open'))).toBe(true);
722
+ });
723
+ // 13. Null profile + when_stack only → still evaluated (stack comes from repoContext)
724
+ it('null profile with when_stack only → still evaluated from repoContext', () => {
725
+ const matchResult = evaluateConditions({ when_stack: 'sveltekit' }, noProfile, sveltekitRepo);
726
+ expect(matchResult.included).toBe(true);
727
+ const noMatchResult = evaluateConditions({ when_stack: 'nextjs' }, noProfile, sveltekitRepo);
728
+ expect(noMatchResult.included).toBe(false);
729
+ });
730
+ });
731
+ describe('BET-170 acceptance criteria — integration', () => {
732
+ /**
733
+ * Mock rules cover all combinations: stack condition, stage condition,
734
+ * governance condition, and unconditional at core/intermediate/expert levels.
735
+ */
736
+ const mockRules = [
737
+ { name: 'deployment', level: 'core', conditions: { when_stack: 'sveltekit' } },
738
+ { name: 'feature-flags', level: 'intermediate', conditions: { when_minStage: 'grounded' } },
739
+ { name: 'domain-boundaries', level: 'expert', conditions: { when_minGovernance: '5' } },
740
+ { name: 'code-integrity', level: 'core' }, // no conditions — always included
741
+ { name: 'review-gate', level: 'intermediate' }, // no conditions
742
+ { name: 'orchestrator-mode', level: 'expert' }, // no conditions
743
+ ];
744
+ function applyPipeline(rules, profile, repo) {
745
+ const profileStage = profile?.stage;
746
+ // stage-gated level filter: no requestedLevel (defaults to widest), stage caps it
747
+ const levelFiltered = filterByLevel(rules, undefined, profileStage);
748
+ // condition filter
749
+ return levelFiltered.filter((rule) => {
750
+ const result = evaluateConditions(rule.conditions ?? {}, profile, repo);
751
+ return result.included;
752
+ });
753
+ }
754
+ // AC1: Fresh Python workspace (stage=blank, 0 entries) — only core items with no conditions
755
+ it('AC1: stage=blank, python — only core unconditional items', () => {
756
+ const profile = { stage: 'blank', totalEntries: 0, totalRelations: 0 };
757
+ const repo = { detectedStack: ['python'] };
758
+ const result = applyPipeline(mockRules, profile, repo);
759
+ const names = result.map((r) => r.name);
760
+ // Only code-integrity: core level, no conditions
761
+ // deployment: core but when_stack=sveltekit fails (python != sveltekit)
762
+ expect(names).toContain('code-integrity');
763
+ expect(names).not.toContain('deployment'); // core but sveltekit condition fails
764
+ expect(names).not.toContain('feature-flags'); // intermediate — capped by blank stage
765
+ expect(names).not.toContain('domain-boundaries'); // expert — capped by blank stage
766
+ expect(names).not.toContain('review-gate'); // intermediate — capped by blank stage
767
+ expect(names).not.toContain('orchestrator-mode'); // expert — capped by blank stage
768
+ expect(result).toHaveLength(1);
769
+ });
770
+ // AC2: Node/TS workspace (stage=grounded, 30 entries) — stack-matched, all levels
771
+ it('AC2: stage=grounded, sveltekit/typescript, 30 entries — all rules included', () => {
772
+ const profile = { stage: 'grounded', totalEntries: 30, totalRelations: 15 };
773
+ const repo = { detectedStack: ['typescript', 'sveltekit'] };
774
+ const result = applyPipeline(mockRules, profile, repo);
775
+ const names = result.map((r) => r.name);
776
+ // All conditions pass: sveltekit matches, grounded >= grounded, 15 >= 5
777
+ expect(names).toContain('deployment');
778
+ expect(names).toContain('feature-flags');
779
+ expect(names).toContain('domain-boundaries');
780
+ expect(names).toContain('code-integrity');
781
+ expect(names).toContain('review-gate');
782
+ expect(names).toContain('orchestrator-mode');
783
+ expect(result).toHaveLength(6);
784
+ });
785
+ // AC3: Mature workspace (stage=connected, 100+ entries) — all rules and skills
786
+ it('AC3: stage=connected, 150 entries — all rules projected without filtering', () => {
787
+ const profile = { stage: 'connected', totalEntries: 150, totalRelations: 80 };
788
+ const repo = { detectedStack: ['typescript', 'sveltekit'] };
789
+ const result = applyPipeline(mockRules, profile, repo);
790
+ expect(result).toHaveLength(6);
791
+ });
792
+ // AC4: Unknown stack — general template set, no stack-specific rules
793
+ it('AC4: stage=grounded, unknown stack — only non-stack-conditional rules', () => {
794
+ const profile = { stage: 'grounded', totalEntries: 30, totalRelations: 15 };
795
+ const repo = { detectedStack: [] };
796
+ const result = applyPipeline(mockRules, profile, repo);
797
+ const names = result.map((r) => r.name);
798
+ // deployment requires sveltekit stack — excluded
799
+ // all others: feature-flags (grounded ok), domain-boundaries (15 >= 5), unconditionals all pass
800
+ expect(names).not.toContain('deployment');
801
+ expect(names).toContain('feature-flags');
802
+ expect(names).toContain('domain-boundaries');
803
+ expect(names).toContain('code-integrity');
804
+ expect(names).toContain('review-gate');
805
+ expect(names).toContain('orchestrator-mode');
806
+ expect(result).toHaveLength(5);
807
+ });
808
+ // AC5: workspaceReadiness failure (null profile) — fail-open, all rules/skills project
809
+ it('AC5: null profile (readiness failure) — fail-open, profile conditions pass', () => {
810
+ const profile = null;
811
+ const repo = { detectedStack: ['typescript'] };
812
+ const result = applyPipeline(mockRules, profile, repo);
813
+ const names = result.map((r) => r.name);
814
+ // Null profile:
815
+ // - filterByLevel: no stage cap → all levels pass
816
+ // - evaluateConditions: when_minStage + when_minGovernance → fail-open (included)
817
+ // - when_stack: still evaluated against repoContext; sveltekit not in [typescript] → excluded
818
+ expect(names).not.toContain('deployment'); // when_stack=sveltekit, typescript doesn't match
819
+ expect(names).toContain('feature-flags'); // fail-open (profile null)
820
+ expect(names).toContain('domain-boundaries'); // fail-open (profile null)
821
+ expect(names).toContain('code-integrity');
822
+ expect(names).toContain('review-gate');
823
+ expect(names).toContain('orchestrator-mode');
824
+ expect(result).toHaveLength(5);
825
+ });
826
+ // Scale test: 0/5/50/500 entries — filtering correctness at different entry counts
827
+ it('scale test: filtering correctness at 0/5/50/500 totalEntries', () => {
828
+ const repo = { detectedStack: ['sveltekit'] };
829
+ // 0 entries: blank stage, low relations
830
+ // deployment: core level (passes stage cap), sveltekit matches → included
831
+ // code-integrity: core level, no conditions → included
832
+ // everything else: capped by blank stage (intermediate/expert excluded)
833
+ const result0 = applyPipeline(mockRules, { stage: 'blank', totalEntries: 0, totalRelations: 0 }, repo);
834
+ const names0 = result0.map((r) => r.name);
835
+ expect(names0).toContain('deployment');
836
+ expect(names0).toContain('code-integrity');
837
+ expect(names0).not.toContain('feature-flags'); // intermediate — capped
838
+ expect(names0).not.toContain('domain-boundaries'); // expert — capped
839
+ expect(names0).not.toContain('review-gate'); // intermediate — capped
840
+ expect(names0).not.toContain('orchestrator-mode'); // expert — capped
841
+ expect(result0).toHaveLength(2);
842
+ // 5 entries: seed stage, 2 relations (below governance threshold)
843
+ const result5 = applyPipeline(mockRules, { stage: 'seed', totalEntries: 5, totalRelations: 2 }, repo);
844
+ const names5 = result5.map((r) => r.name);
845
+ // seed caps at intermediate; domain-boundaries (expert) + orchestrator-mode (expert) excluded
846
+ // domain-boundaries also fails governance (2 < 5)
847
+ // feature-flags: intermediate ok, but when_minStage=grounded fails for seed → excluded
848
+ // deployment: core ok, sveltekit matches → included
849
+ expect(names5).toContain('deployment');
850
+ expect(names5).toContain('code-integrity');
851
+ expect(names5).toContain('review-gate');
852
+ expect(names5).not.toContain('domain-boundaries');
853
+ expect(names5).not.toContain('orchestrator-mode');
854
+ expect(names5).not.toContain('feature-flags');
855
+ // 50 entries: grounded stage, 20 relations
856
+ const result50 = applyPipeline(mockRules, { stage: 'grounded', totalEntries: 50, totalRelations: 20 }, repo);
857
+ expect(result50).toHaveLength(6);
858
+ // 500 entries: connected stage, 200 relations
859
+ const result500 = applyPipeline(mockRules, { stage: 'connected', totalEntries: 500, totalRelations: 200 }, repo);
860
+ expect(result500).toHaveLength(6);
861
+ });
862
+ });
863
+ describe('readCanonicalRules — backward compat with when_* frontmatter', () => {
864
+ beforeEach(() => {
865
+ Object.keys(vfs).forEach((k) => delete vfs[k]);
866
+ });
867
+ it('parses when_stack from frontmatter into conditions', () => {
868
+ vfs[join(PB_DIR, 'rules', 'deploy.md')] = `---
869
+ name: deploy
870
+ description: Deploy rule
871
+ scope: ""
872
+ autoApply: true
873
+ when_stack: sveltekit
874
+ ---
875
+
876
+ # Deploy body
877
+ `;
878
+ const rules = readCanonicalRules(PB_DIR);
879
+ expect(rules).toHaveLength(1);
880
+ expect(rules[0].conditions?.when_stack).toBe('sveltekit');
881
+ });
882
+ it('parses when_minStage from frontmatter into conditions', () => {
883
+ vfs[join(PB_DIR, 'rules', 'flags.md')] = `---
884
+ name: flags
885
+ description: Feature flags rule
886
+ scope: ""
887
+ autoApply: false
888
+ when_minStage: grounded
889
+ ---
890
+
891
+ # Flags body
892
+ `;
893
+ const rules = readCanonicalRules(PB_DIR);
894
+ expect(rules).toHaveLength(1);
895
+ expect(rules[0].conditions?.when_minStage).toBe('grounded');
896
+ });
897
+ it('parses when_minGovernance from frontmatter into conditions', () => {
898
+ vfs[join(PB_DIR, 'rules', 'domains.md')] = `---
899
+ name: domains
900
+ description: Domain boundaries rule
901
+ scope: ""
902
+ autoApply: true
903
+ when_minGovernance: 5
904
+ ---
905
+
906
+ # Domains body
907
+ `;
908
+ const rules = readCanonicalRules(PB_DIR);
909
+ expect(rules).toHaveLength(1);
910
+ expect(rules[0].conditions?.when_minGovernance).toBe('5');
911
+ });
912
+ it('returns undefined conditions when no when_* keys are present (backward compat)', () => {
913
+ vfs[join(PB_DIR, 'rules', 'plain.md')] = `---
914
+ name: plain
915
+ description: Plain rule
916
+ scope: ""
917
+ autoApply: true
918
+ ---
919
+
920
+ # Plain body
921
+ `;
922
+ const rules = readCanonicalRules(PB_DIR);
923
+ expect(rules).toHaveLength(1);
924
+ expect(rules[0].conditions).toBeUndefined();
925
+ });
926
+ });
471
927
  //# sourceMappingURL=portable-knowledge.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"portable-knowledge.test.js","sourceRoot":"","sources":["../../src/generators/portable-knowledge.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portable-knowledge.test.js","sourceRoot":"","sources":["../../src/generators/portable-knowledge.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Surface profiles — per-target execution model descriptors.
3
+ * Downstream generators receive the profile for the target they're emitting to.
4
+ * BET-270 Slice 0: type system + registry only. Generators accept but do not yet use the profile.
5
+ */
6
+ import type { TargetName } from './portable-knowledge.js';
7
+ export type { TargetName };
8
+ export interface SurfaceProfile {
9
+ /** How the agent executes work in this surface. */
10
+ executionModel: 'batch' | 'interactive' | 'passive';
11
+ /** Whether output is split across multiple files or consolidated into one. */
12
+ format: 'multi-file' | 'single-file';
13
+ /** Memory and continuity model for this surface. */
14
+ sessionModel: 'stateless' | 'conversational' | 'autonomous';
15
+ /** Maximum characters for single-file output (used by future generators). */
16
+ tokenBudget: number;
17
+ /** How this surface expects instructions to be structured. */
18
+ workflowStyle: 'orchestrated' | 'direct' | 'guided';
19
+ }
20
+ export declare const SURFACE_PROFILES: Record<TargetName, SurfaceProfile>;
21
+ /**
22
+ * Resolve a surface profile for the given target name.
23
+ * Returns the matching profile for known targets.
24
+ * Falls back to the codex profile for unknown targets.
25
+ */
26
+ export declare function resolveSurfaceProfile(target: string): SurfaceProfile;
27
+ //# sourceMappingURL=surface-profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-profiles.d.ts","sourceRoot":"","sources":["../../src/generators/surface-profiles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,YAAY,EAAE,UAAU,EAAE,CAAC;AAI3B,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;IACpD,8EAA8E;IAC9E,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC;IACrC,oDAAoD;IACpD,YAAY,EAAE,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC;IAC5D,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,aAAa,EAAE,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACrD;AAID,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,CA6B/D,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAGpE"}