start-vibing 2.0.41 → 2.0.44

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 CHANGED
@@ -35,9 +35,9 @@ bunx start-vibing # bun (faster)
35
35
 
36
36
  ## What It Does
37
37
 
38
- ### 1. Auto-installs Claude Code
38
+ ### 1. Auto-installs Claude Code (Native)
39
39
 
40
- If Claude Code is not found on your system, it automatically installs using official methods:
40
+ Installs Claude Code using the official **native installer** (recommended):
41
41
 
42
42
  | Platform | Installation Command |
43
43
  | -------------------- | ------------------------------------------------- |
@@ -45,6 +45,8 @@ If Claude Code is not found on your system, it automatically installs using offi
45
45
  | Windows (PowerShell) | `irm https://claude.ai/install.ps1 \| iex` |
46
46
  | Windows (CMD) | Downloads and runs `install.cmd` |
47
47
 
48
+ **Automatic Migration:** If you have an old npm installation, it automatically migrates to native installer for better auto-update support.
49
+
48
50
  ### 2. Sets Up Complete Workflow
49
51
 
50
52
  Creates a `.claude/` folder with:
package/dist/cli.js CHANGED
@@ -324,8 +324,55 @@ import { homedir } from "os";
324
324
  function isClaudeInstalled() {
325
325
  return commandExists("claude");
326
326
  }
327
+ function isNpmInstallation() {
328
+ const { isWindows } = getPlatformInfo();
329
+ try {
330
+ const whichCmd = isWindows ? "where claude" : "which claude";
331
+ const result = spawnSync(isWindows ? "cmd" : "sh", isWindows ? ["/c", whichCmd] : ["-c", whichCmd], {
332
+ encoding: "utf-8",
333
+ stdio: ["pipe", "pipe", "pipe"],
334
+ timeout: 5000
335
+ });
336
+ if (result.stdout) {
337
+ const path = result.stdout.toLowerCase();
338
+ return path.includes("node_modules") || path.includes("\\npm\\") || path.includes("/npm/");
339
+ }
340
+ return false;
341
+ } catch {
342
+ return false;
343
+ }
344
+ }
345
+ async function migrateToNative() {
346
+ console.log(" Detected npm installation (deprecated)");
347
+ console.log(" Migrating to native installer...");
348
+ console.log(" Running: claude install");
349
+ console.log("");
350
+ try {
351
+ execSync2("claude install", {
352
+ stdio: "inherit",
353
+ timeout: 120000
354
+ });
355
+ console.log("");
356
+ console.log(" Migration to native installer completed!");
357
+ console.log(" Auto-updates are now enabled.");
358
+ return { success: true, alreadyInstalled: true, migrated: true };
359
+ } catch (error) {
360
+ console.log("");
361
+ console.log(" Migration failed, but Claude Code is still functional.");
362
+ console.log(" You can manually run: claude install");
363
+ return {
364
+ success: true,
365
+ alreadyInstalled: true,
366
+ migrated: false,
367
+ error: error instanceof Error ? error.message : "Migration failed"
368
+ };
369
+ }
370
+ }
327
371
  async function installClaude() {
328
372
  if (isClaudeInstalled()) {
373
+ if (isNpmInstallation()) {
374
+ return await migrateToNative();
375
+ }
329
376
  return { success: true, alreadyInstalled: true };
330
377
  }
331
378
  const { platform: platform2, shell, isWindows } = getPlatformInfo();
@@ -814,10 +861,13 @@ ${BANNER}
814
861
  npm install -g start-vibing
815
862
 
816
863
  Claude Code Installation:
817
- Automatically uses official installers:
864
+ Automatically uses official native installers:
818
865
  - macOS/Linux: curl -fsSL https://claude.ai/install.sh | bash
819
866
  - Windows: irm https://claude.ai/install.ps1 | iex
820
867
 
868
+ If npm installation detected, automatically migrates to native
869
+ for better auto-update support.
870
+
821
871
  Documentation:
822
872
  https://github.com/LimaTechnologies/ai-development
823
873
  `;
@@ -901,30 +951,28 @@ async function main() {
901
951
  console.log(" Claude Code Setup");
902
952
  console.log(" ========================================");
903
953
  console.log("");
904
- if (!isClaudeInstalled()) {
905
- console.log(" Claude Code not found on system.");
906
- console.log(" Installing Claude Code...");
954
+ const installResult = await installClaude();
955
+ if (!installResult.success) {
956
+ console.error("");
957
+ console.error(" Failed to install Claude Code:", installResult.error);
958
+ console.error("");
959
+ console.error(" You can install manually from: https://claude.ai/code");
960
+ console.error("");
961
+ console.log(" Next steps (manual):");
962
+ console.log(" 1. Install Claude Code from https://claude.ai/code");
963
+ console.log(" 2. Restart your terminal");
964
+ console.log(" 3. Run: claude --dangerously-skip-permissions");
907
965
  console.log("");
908
- const installResult = await installClaude();
909
- if (!installResult.success) {
910
- console.error("");
911
- console.error(" Failed to install Claude Code:", installResult.error);
912
- console.error("");
913
- console.error(" You can install manually from: https://claude.ai/code");
914
- console.error("");
915
- console.log(" Next steps (manual):");
916
- console.log(" 1. Install Claude Code from https://claude.ai/code");
917
- console.log(" 2. Restart your terminal");
918
- console.log(" 3. Run: claude --dangerously-skip-permissions");
919
- console.log("");
920
- process.exit(0);
921
- }
922
- if (!installResult.alreadyInstalled) {
923
- console.log("");
924
- console.log(" Claude Code installed successfully!");
925
- }
966
+ process.exit(0);
967
+ }
968
+ if (installResult.migrated) {
969
+ console.log("");
970
+ console.log(" Migrated to native installer (auto-updates enabled).");
971
+ } else if (installResult.alreadyInstalled) {
972
+ console.log(" Claude Code is ready (native installer).");
926
973
  } else {
927
- console.log(" Claude Code is already installed.");
974
+ console.log("");
975
+ console.log(" Claude Code installed successfully!");
928
976
  }
929
977
  if (!skipMcp && isClaudeMcpReady()) {
930
978
  console.log("");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "start-vibing",
3
- "version": "2.0.41",
3
+ "version": "2.0.44",
4
4
  "description": "Setup Claude Code agents, skills, and hooks in your project. Smart copy that preserves your custom domains and configurations.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -46,17 +46,16 @@ All agents MUST use these MCP servers when applicable:
46
46
  | `context7` | Up-to-date library documentation | research, analyzer, tester |
47
47
  | `sequential-thinking` | Complex problem-solving | orchestrator, analyzer, final-validator |
48
48
  | `memory` | Persistent knowledge graph | domain-updater, commit-manager |
49
- | `playwright` | Browser automation and E2E testing | tester, ui-ux-reviewer |
49
+ | `playwright` | Browser automation (via MCP tools) | ui-ux-reviewer |
50
50
  | `nextjs-devtools` | Next.js specific development tools | analyzer (Next.js projects) |
51
51
  | `mongodb` | MongoDB database operations | tester, security-auditor |
52
52
 
53
53
  ### Agent MCP Usage Rules
54
54
 
55
55
  - **research agent**: MUST use `context7` for library docs before recommending patterns
56
- - **tester agent**: MUST use `playwright` for E2E tests
57
56
  - **analyzer agent**: SHOULD use `context7` to verify current API patterns
58
57
  - **domain-updater**: SHOULD use `memory` to persist patterns across sessions
59
- - **ui-ux-reviewer**: MUST use `playwright` to verify UI implementations
58
+ - **ui-ux-reviewer**: MUST use `playwright` MCP tools to verify UI implementations
60
59
 
61
60
  ---
62
61
 
@@ -205,9 +204,8 @@ All implementations MUST:
205
204
  - [ ] Pass typecheck (command from config)
206
205
  - [ ] Pass lint (command from config)
207
206
  - [ ] Pass unit tests (command from config)
208
- - [ ] Pass E2E tests (command from config)
209
207
  - [ ] Pass build (command from config)
210
- - [ ] Have E2E tests with real auth
208
+ - [ ] Use Playwright MCP for browser testing when needed
211
209
  - [ ] Have documentation in `docs/`
212
210
  - [ ] Be security audited
213
211
  - [ ] Be committed with conventional commits
@@ -215,6 +213,48 @@ All implementations MUST:
215
213
 
216
214
  ---
217
215
 
216
+ ## Opus 4.6 Best Practices
217
+
218
+ ### Effort Levels
219
+
220
+ | Level | Use For |
221
+ |-------|---------|
222
+ | `max` | Orchestrators, complex architecture (Opus only) |
223
+ | `high` | Default - complex agentic tasks |
224
+ | `medium` | Most workloads, balance speed/cost |
225
+ | `low` | Subagents, high-volume tasks |
226
+
227
+ ### Prompting Rules
228
+
229
+ - **AVOID**: Words like "CRITICAL", "MUST", "be thorough" - causes overtriggering
230
+ - **USE**: "Use this tool when it would enhance understanding"
231
+ - Keep prompts minimal - Opus 4.6 overthinks with verbose instructions
232
+ - Explicit instructions work better than implied expectations
233
+
234
+ ### Model Selection
235
+
236
+ | Model | Use Case |
237
+ |-------|----------|
238
+ | **Opus 4.6** | Team leads, orchestrators, deep reasoning |
239
+ | **Sonnet 4.6** | Teammates, subagents (5x cheaper, near-identical performance) |
240
+ | **Haiku 4.5** | Simple classification, no thinking needed |
241
+
242
+ ### Interleaved Thinking
243
+
244
+ - Enabled automatically with adaptive thinking
245
+ - Claude reasons between every tool call
246
+ - Pass thinking blocks back unmodified in tool loops
247
+ - Provides transparency into Claude's reasoning process
248
+
249
+ ### Cost Control
250
+
251
+ - Set `max_tokens` to 64K+ at high effort
252
+ - Use `low` effort for subagents
253
+ - Billed for FULL thinking tokens (not summarized output)
254
+ - Thinking tokens count toward context window
255
+
256
+ ---
257
+
218
258
  ## Domain Updater Agent
219
259
 
220
260
  The **domain-updater** runs BEFORE commit-manager to ensure git stays clean.
@@ -55,17 +55,38 @@ async function main(): Promise<void> {
55
55
 
56
56
  const systemMessage = `TASK WORKFLOW (English only):
57
57
 
58
- 0. READ both CLAUDE.md (project root) and .claude/CLAUDE.md before making any changes. These contain project rules, architecture, and context you need.
59
- 1. CREATE a detailed todo-list (TaskCreate) breaking down the user's request into subtopics/steps.
58
+ 0. READ both CLAUDE.md (project root) and .claude/CLAUDE.md before making any changes.
59
+
60
+ 1. CREATE a detailed todo-list (TaskCreate) breaking down the request into steps.
61
+ - This is MANDATORY for ALL tasks, not optional.
62
+ - Include "Update CLAUDE.md with changes" as final task.
63
+
60
64
  2. WORK through each item sequentially — mark in_progress when starting, completed when done.
61
- 3. COMMIT using conventional commits (feat/fix/refactor/docs/chore). Use the commit-manager agent for proper git workflow: branch → implement → commit → merge to main.
62
- 4. UPDATE CLAUDE.md before finishing — this is the project's fast-recall memory across sessions:
63
- a. "## Last Change" section (date: ${today}, branch, summary). Keep only the latest, never stack.
64
- b. If you changed how the app works (new flows, changed workflows, new patterns): update the relevant CLAUDE.md sections (Architecture, Workflow, Rules, UI patterns, etc.) so the next session knows.
65
- c. If you added new rules, gotchas, or forbidden patterns: add them to the appropriate section.
66
- d. If you changed config, stack, or tooling: update the Stack/Configuration sections.
67
- CLAUDE.md is the single source of truth for quick context. Anything not recorded here will be forgotten next session.
68
- 5. RUN stop-validator before finishing: npx tsx .claude/hooks/stop-validator.ts`;
65
+
66
+ 3. UI/UX IMPLEMENTATION:
67
+ - BEFORE implementing any UI: invoke ui-mobile, ui-tablet, ui-desktop agents in PARALLEL.
68
+ - RESEARCH competitors in the same niche using competitor-analyzer or research-web agent.
69
+ - UI changes without market research will be REJECTED by final-validator.
70
+
71
+ 4. TESTING (via Playwright MCP):
72
+ - Use the Playwright MCP server (mcp__playwright__*) for browser testing.
73
+ - Do NOT run bun run test:e2e - use MCP tools directly.
74
+ - Test on 3 viewports: mobile (375px), tablet (768px), desktop (1280px).
75
+
76
+ 5. COMMIT using conventional commits via commit-manager agent.
77
+
78
+ 6. UPDATE CLAUDE.md BEFORE finishing (MANDATORY):
79
+ a. "## Last Change" section (date: ${today}, branch, summary). Keep only latest.
80
+ b. Architecture changes: Update Architecture section with new patterns, file locations.
81
+ c. Business rules: Add new rules to relevant sections (not just summary).
82
+ d. UI patterns: Document new components, design decisions, aesthetic rules.
83
+ e. Workflows: Update Workflow section if process changed.
84
+ f. Gotchas: Add to FORBIDDEN or NRY sections if discovered.
85
+ g. Config/Stack: Update if tooling changed.
86
+
87
+ CLAUDE.md is the SINGLE SOURCE OF TRUTH. Document everything that affects future sessions.
88
+
89
+ 7. RUN stop-validator before finishing: npx tsx .claude/hooks/stop-validator.ts`;
69
90
 
70
91
  console.log(JSON.stringify({ continue: true, systemMessage }));
71
92
  process.exit(0);
@@ -1,5 +1,5 @@
1
1
  {
2
- "model": "claude-opus-4-5-20251101",
2
+ "model": "opus",
3
3
  "max_tokens": 8192,
4
4
  "max_turns": 100,
5
5
 
@@ -239,7 +239,7 @@
239
239
  },
240
240
  "testing": {
241
241
  "unit_tests_required": true,
242
- "e2e_for_ui_features": true,
242
+ "playwright_mcp_for_browser_tests": true,
243
243
  "data_testid_required": true,
244
244
  "edge_cases_research_required": true
245
245
  },
@@ -266,11 +266,6 @@
266
266
  "required": true,
267
267
  "blocking": true
268
268
  },
269
- "test_e2e": {
270
- "command": "bun run test:e2e",
271
- "required": "when_ui_changes",
272
- "blocking": true
273
- },
274
269
  "build": {
275
270
  "command": "bun run build",
276
271
  "required": true,