@codebakers/cli 3.9.30 → 3.9.31

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codebakers/cli",
3
- "version": "3.9.30",
3
+ "version": "3.9.31",
4
4
  "description": "CodeBakers CLI - Production patterns for AI-assisted development",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -1560,8 +1560,16 @@ async function showVSCodeClaudeInstructions(): Promise<void> {
1560
1560
  console.log(chalk.gray(' Having issues? Run: ') + chalk.cyan('codebakers doctor') + chalk.gray(' to diagnose\n'));
1561
1561
  }
1562
1562
 
1563
- // v6.15 Bootstrap - SHORT template with rules at START and END for attention
1564
- const V6_CLAUDE_MD = `# CodeBakers v6.15
1563
+ // v6.16 Bootstrap - SHORT template with magic phrase + rules at START and END
1564
+ const V6_CLAUDE_MD = `# CodeBakers v6.16
1565
+
1566
+ ## 🪄 MAGIC PHRASE: "codebakers go"
1567
+ When user says "codebakers go" in chat, start the onboarding conversation:
1568
+ 1. Ask: "Is this an existing project or are you starting fresh?" (1=existing, 2=new)
1569
+ 2. If existing: "Great! What would you like to work on?"
1570
+ 3. If new: "What do you want to build? Describe your project."
1571
+ 4. Then call \`init_project()\` to set up CodeBakers files
1572
+ 5. Continue helping them build
1565
1573
 
1566
1574
  ## 🚨 ALWAYS DO THIS (Critical - Read First)
1567
1575
  1. ALWAYS call \`project_status()\` FIRST → If works show "🍪 CodeBakers is working..." / If fails show "⚠️ Not connected"
@@ -1583,7 +1591,7 @@ validate_complete({ feature: "name", files: [...] }) → Validate BEFORE done
1583
1591
  \`\`\`
1584
1592
 
1585
1593
  Header (after project_status succeeds): 🍪 CodeBakers is working on this...
1586
- Header (if project_status fails): ⚠️ CodeBakers not connected - run: codebakers go
1594
+ Header (if project_status fails): ⚠️ CodeBakers not connected
1587
1595
  Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
1588
1596
 
1589
1597
  ## 🚨 ALWAYS DO THIS (Critical - Repeated at End)
@@ -1593,7 +1601,10 @@ Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
1593
1601
  4. Show footer after code responses
1594
1602
  `;
1595
1603
 
1596
- const V6_CURSORRULES = `# CodeBakers v6.15
1604
+ const V6_CURSORRULES = `# CodeBakers v6.16
1605
+
1606
+ ## 🪄 "codebakers go" = Start onboarding conversation
1607
+ Ask existing/new → Ask what to build → Call init_project() → Help them build
1597
1608
 
1598
1609
  ## 🚨 ALWAYS (Read First)
1599
1610
  1. Call project_status() FIRST → 🍪 Working... or ⚠️ Not connected
package/src/mcp/server.ts CHANGED
@@ -2808,10 +2808,18 @@ Or if user declines, call without fullDeploy:
2808
2808
  // Use default
2809
2809
  }
2810
2810
 
2811
- results.push(`# 🎨 Adding CodeBakers v6.15 to: ${projectName}\n`);
2811
+ results.push(`# 🎨 Adding CodeBakers v6.16 to: ${projectName}\n`);
2812
2812
 
2813
- // v6.15 bootstrap content - SHORT template with rules at START and END
2814
- const V6_CLAUDE_MD = `# CodeBakers v6.15
2813
+ // v6.16 bootstrap content - magic phrase + rules at START and END
2814
+ const V6_CLAUDE_MD = `# CodeBakers v6.16
2815
+
2816
+ ## 🪄 MAGIC PHRASE: "codebakers go"
2817
+ When user says "codebakers go" in chat, start the onboarding conversation:
2818
+ 1. Ask: "Is this an existing project or are you starting fresh?" (1=existing, 2=new)
2819
+ 2. If existing: "Great! What would you like to work on?"
2820
+ 3. If new: "What do you want to build? Describe your project."
2821
+ 4. Then call \`init_project()\` to set up CodeBakers files
2822
+ 5. Continue helping them build
2815
2823
 
2816
2824
  ## 🚨 ALWAYS DO THIS (Critical - Read First)
2817
2825
  1. ALWAYS call \`project_status()\` FIRST → If works show "🍪 CodeBakers is working..." / If fails show "⚠️ Not connected"
@@ -2833,7 +2841,7 @@ validate_complete({ feature: "name", files: [...] }) → Validate BEFORE done
2833
2841
  \`\`\`
2834
2842
 
2835
2843
  Header (after project_status succeeds): 🍪 CodeBakers is working on this...
2836
- Header (if project_status fails): ⚠️ CodeBakers not connected - run: codebakers go
2844
+ Header (if project_status fails): ⚠️ CodeBakers not connected
2837
2845
  Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
2838
2846
 
2839
2847
  ## 🚨 ALWAYS DO THIS (Critical - Repeated at End)
@@ -2843,7 +2851,10 @@ Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
2843
2851
  4. Show footer after code responses
2844
2852
  `;
2845
2853
 
2846
- const V6_CURSORRULES = `# CodeBakers v6.15
2854
+ const V6_CURSORRULES = `# CodeBakers v6.16
2855
+
2856
+ ## 🪄 "codebakers go" = Start onboarding conversation
2857
+ Ask existing/new → Ask what to build → Call init_project() → Help them build
2847
2858
 
2848
2859
  ## 🚨 ALWAYS (Read First)
2849
2860
  1. Call project_status() FIRST → 🍪 Working... or ⚠️ Not connected
@@ -2863,27 +2874,27 @@ Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
2863
2874
  3. validate_complete() before done
2864
2875
  `;
2865
2876
 
2866
- // Check if already v6.15
2877
+ // Check if already v6.16
2867
2878
  const claudeMdPath = path.join(cwd, 'CLAUDE.md');
2868
2879
  if (fs.existsSync(claudeMdPath)) {
2869
2880
  const content = fs.readFileSync(claudeMdPath, 'utf-8');
2870
- if (content.includes('v6.15') && content.includes('discover_patterns')) {
2871
- results.push('✓ CodeBakers v6.15 already installed\n');
2881
+ if (content.includes('v6.16') && content.includes('discover_patterns')) {
2882
+ results.push('✓ CodeBakers v6.16 already installed\n');
2872
2883
  results.push('Patterns are server-enforced. Just call `discover_patterns` before coding!');
2873
2884
  return {
2874
2885
  content: [{ type: 'text' as const, text: results.join('\n') }],
2875
2886
  };
2876
2887
  }
2877
- results.push('⚠️ Upgrading to v6.15 (server-enforced patterns)...\n');
2888
+ results.push('⚠️ Upgrading to v6.16 (server-enforced patterns)...\n');
2878
2889
  }
2879
2890
 
2880
2891
  try {
2881
- // Write v6.15 bootstrap files
2892
+ // Write v6.16 bootstrap files
2882
2893
  fs.writeFileSync(claudeMdPath, V6_CLAUDE_MD);
2883
- results.push('✓ Created CLAUDE.md (v6.15 bootstrap)');
2894
+ results.push('✓ Created CLAUDE.md (v6.16 bootstrap)');
2884
2895
 
2885
2896
  fs.writeFileSync(path.join(cwd, '.cursorrules'), V6_CURSORRULES);
2886
- results.push('✓ Created .cursorrules (v6.15 bootstrap)');
2897
+ results.push('✓ Created .cursorrules (v6.16 bootstrap)');
2887
2898
 
2888
2899
  // Remove old .claude folder if it exists (v5 → v6 migration)
2889
2900
  const claudeDir = path.join(cwd, '.claude');
@@ -2930,7 +2941,7 @@ Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
2930
2941
  fs.writeFileSync(stateFile, JSON.stringify(state, null, 2));
2931
2942
 
2932
2943
  results.push('\n---\n');
2933
- results.push('## ✅ CodeBakers v6.15 Installed!\n');
2944
+ results.push('## ✅ CodeBakers v6.16 Installed!\n');
2934
2945
  results.push('**How it works now:**');
2935
2946
  results.push('1. Call `discover_patterns` before writing code');
2936
2947
  results.push('2. Server returns all patterns and rules');
@@ -7475,7 +7486,7 @@ ${handlers.join('\n')}
7475
7486
  }
7476
7487
 
7477
7488
  /**
7478
- * Update to CodeBakers v6.14 - server-enforced patterns
7489
+ * Update to CodeBakers v6.16 - server-enforced patterns with magic phrase
7479
7490
  * This is the MCP equivalent of the `codebakers upgrade` CLI command
7480
7491
  */
7481
7492
  private async handleUpdatePatterns(args: { force?: boolean }) {
@@ -7485,10 +7496,18 @@ ${handlers.join('\n')}
7485
7496
  const claudeDir = path.join(cwd, '.claude');
7486
7497
  const codebakersJson = path.join(cwd, '.codebakers.json');
7487
7498
 
7488
- let response = `# 🔄 CodeBakers v6.15 Update\n\n`;
7499
+ let response = `# 🔄 CodeBakers v6.16 Update\n\n`;
7489
7500
 
7490
- // v6.15 bootstrap content - SHORT template with rules at START and END
7491
- const V6_CLAUDE_MD = `# CodeBakers v6.15
7501
+ // v6.16 bootstrap content - magic phrase + rules at START and END
7502
+ const V6_CLAUDE_MD = `# CodeBakers v6.16
7503
+
7504
+ ## 🪄 MAGIC PHRASE: "codebakers go"
7505
+ When user says "codebakers go" in chat, start the onboarding conversation:
7506
+ 1. Ask: "Is this an existing project or are you starting fresh?" (1=existing, 2=new)
7507
+ 2. If existing: "Great! What would you like to work on?"
7508
+ 3. If new: "What do you want to build? Describe your project."
7509
+ 4. Then call \`init_project()\` to set up CodeBakers files
7510
+ 5. Continue helping them build
7492
7511
 
7493
7512
  ## 🚨 ALWAYS DO THIS (Critical - Read First)
7494
7513
  1. ALWAYS call \`project_status()\` FIRST → If works show "🍪 CodeBakers is working..." / If fails show "⚠️ Not connected"
@@ -7510,7 +7529,7 @@ validate_complete({ feature: "name", files: [...] }) → Validate BEFORE done
7510
7529
  \`\`\`
7511
7530
 
7512
7531
  Header (after project_status succeeds): 🍪 CodeBakers is working on this...
7513
- Header (if project_status fails): ⚠️ CodeBakers not connected - run: codebakers go
7532
+ Header (if project_status fails): ⚠️ CodeBakers not connected
7514
7533
  Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
7515
7534
 
7516
7535
  ## 🚨 ALWAYS DO THIS (Critical - Repeated at End)
@@ -7520,7 +7539,10 @@ Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
7520
7539
  4. Show footer after code responses
7521
7540
  `;
7522
7541
 
7523
- const V6_CURSORRULES = `# CodeBakers v6.15
7542
+ const V6_CURSORRULES = `# CodeBakers v6.16
7543
+
7544
+ ## 🪄 "codebakers go" = Start onboarding conversation
7545
+ Ask existing/new → Ask what to build → Call init_project() → Help them build
7524
7546
 
7525
7547
  ## 🚨 ALWAYS (Read First)
7526
7548
  1. Call project_status() FIRST → 🍪 Working... or ⚠️ Not connected
@@ -7547,7 +7569,7 @@ Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
7547
7569
 
7548
7570
  if (fs.existsSync(claudeMdPath)) {
7549
7571
  const content = fs.readFileSync(claudeMdPath, 'utf-8');
7550
- isV6 = content.includes('v6.15') && content.includes('discover_patterns');
7572
+ isV6 = content.includes('v6.16') && content.includes('discover_patterns');
7551
7573
  }
7552
7574
 
7553
7575
  if (fs.existsSync(codebakersJson)) {
@@ -7561,11 +7583,11 @@ Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
7561
7583
 
7562
7584
  response += `## Current Status\n`;
7563
7585
  response += `- Version: ${currentVersion || 'Unknown'}\n`;
7564
- response += `- v6.15 (Server-Enforced): ${isV6 ? 'Yes ✓' : 'No'}\n\n`;
7586
+ response += `- v6.16 (Server-Enforced): ${isV6 ? 'Yes ✓' : 'No'}\n\n`;
7565
7587
 
7566
7588
  // Check if already on v6
7567
7589
  if (isV6 && !force) {
7568
- response += `✅ **Already on v6.15!**\n\n`;
7590
+ response += `✅ **Already on v6.16!**\n\n`;
7569
7591
  response += `Your patterns are server-enforced. Just use \`discover_patterns\` before coding.\n`;
7570
7592
  response += `Use \`force: true\` to reinstall bootstrap files.\n`;
7571
7593
  response += this.getUpdateNotice();
@@ -7578,14 +7600,14 @@ Footer (after code): 🍪 **CodeBakers** | Patterns: X | TSC: ✅ | Tests: ✅
7578
7600
  };
7579
7601
  }
7580
7602
 
7581
- response += `## Upgrading to v6.15...\n\n`;
7603
+ response += `## Upgrading to v6.16...\n\n`;
7582
7604
 
7583
- // Write v6.15 bootstrap files
7605
+ // Write v6.16 bootstrap files
7584
7606
  fs.writeFileSync(claudeMdPath, V6_CLAUDE_MD);
7585
- response += `✓ Updated CLAUDE.md (v6.15 bootstrap)\n`;
7607
+ response += `✓ Updated CLAUDE.md (v6.16 bootstrap)\n`;
7586
7608
 
7587
7609
  fs.writeFileSync(path.join(cwd, '.cursorrules'), V6_CURSORRULES);
7588
- response += `✓ Updated .cursorrules (v6.15 bootstrap)\n`;
7610
+ response += `✓ Updated .cursorrules (v6.16 bootstrap)\n`;
7589
7611
 
7590
7612
  // Remove old .claude folder (v5 → v6 migration)
7591
7613
  if (fs.existsSync(claudeDir)) {
@@ -0,0 +1 @@
1
+ /c/dev/1 - CodeBakers/codebakers-server/cli