vibebusiness 1.2.80 → 1.2.83

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 (123) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +31 -31
  3. package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  8. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  9. package/.next/standalone/.next/server/app/api/analyze/route.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/api/epics/[id]/ideas/route.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/api/epics/[id]/route.js.nft.json +1 -1
  13. package/.next/standalone/.next/server/app/api/epics/route.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/api/goals/[id]/kpis/route.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/api/goals/route.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/api/hypotheses/[id]/route.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/api/hypotheses/route.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/api/ideas/[id]/card/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/ideas/[id]/comments/route.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/api/ideas/[id]/implement/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/ideas/[id]/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/ideas/[id]/transition/route.js +1 -1
  24. package/.next/standalone/.next/server/app/api/ideas/[id]/transition/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/ideas/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/implementations/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/kpis/refresh/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/social/[id]/publish/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/social/[id]/publish/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/social/[id]/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/goals/[id]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/goals/page.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/goals/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/hypotheses/[id]/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/hypotheses/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/hypotheses/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/ideas/[id]/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/ideas/[id]/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/roadmap/[id]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/roadmap/investors/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/roadmap/investors/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/roadmap/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/roadmap/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/roadmap/public/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/roadmap/public/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/sessions/page.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/settings.html +1 -1
  53. package/.next/standalone/.next/server/app/settings.rsc +1 -1
  54. package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/social.html +1 -1
  56. package/.next/standalone/.next/server/app/social.rsc +2 -2
  57. package/.next/standalone/.next/server/app/updates/[id]/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/updates/[id]/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/updates/new/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/updates/new.html +1 -1
  61. package/.next/standalone/.next/server/app/updates/new.rsc +2 -2
  62. package/.next/standalone/.next/server/app/updates/page.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/updates/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app-paths-manifest.json +21 -21
  65. package/.next/standalone/.next/server/chunks/{3794.js → 7151.js} +27 -27
  66. package/.next/standalone/.next/server/pages/404.html +1 -1
  67. package/.next/standalone/.next/server/pages/500.html +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  69. package/.next/standalone/data/business-context.json +1 -1
  70. package/.next/standalone/data/heartbeat-sessions.json +228 -0
  71. package/.next/standalone/data/ideas.json +510 -34
  72. package/.next/standalone/data/implementations.json +129 -0
  73. package/.next/standalone/data/videos/staging/while-you-slept-demo.json +66 -0
  74. package/.next/standalone/data/videos/while-you-slept-demo-feed.mp4 +0 -0
  75. package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/0.pack +0 -0
  76. package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/1.pack +0 -0
  77. package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/2.pack +0 -0
  78. package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/index.pack +0 -0
  79. package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/index.pack.old +0 -0
  80. package/.next/standalone/package.json +1 -1
  81. package/.next/standalone/scripts/analyze.ts +1 -15
  82. package/.next/standalone/templates/commands/build-page.md +163 -0
  83. package/.next/standalone/templates/commands/email-marketing.md +339 -0
  84. package/.next/standalone/templates/commands/growth-audit.md +85 -0
  85. package/.next/standalone/templates/commands/launch-campaign.md +84 -0
  86. package/.next/standalone/templates/commands/manage.md +147 -0
  87. package/.next/standalone/templates/commands/measure-page.md +89 -0
  88. package/.next/standalone/templates/commands/positioning.md +128 -0
  89. package/.next/standalone/templates/commands/pricing-analysis.md +91 -0
  90. package/.next/standalone/templates/commands/promo-copy.md +186 -0
  91. package/.next/standalone/templates/commands/promo-video.md +75 -0
  92. package/.next/standalone/templates/commands/research-competitors.md +124 -0
  93. package/.next/standalone/templates/commands/setup-payments.md +107 -0
  94. package/.next/standalone/templates/commands/setup-posthog.md +116 -0
  95. package/.next/standalone/templates/commands/social-media.md +47 -0
  96. package/.next/standalone/templates/commands/status-summary.md +103 -0
  97. package/.next/standalone/templates/commands/validate-idea.md +102 -0
  98. package/.next/standalone/templates/emails/__tests__/validate-templates.test.ts +147 -0
  99. package/.next/standalone/templates/emails/day3-activation-feedback.txt +14 -0
  100. package/.next/standalone/templates/emails/day30-pmf-feedback.txt +19 -0
  101. package/.next/static/chunks/429-8f4030371ebef5c3.js +1 -0
  102. package/.next/static/chunks/827-6cf4bfc10d1ff0c7.js +1 -0
  103. package/.next/static/chunks/app/goals/[id]/page-231bb4daae0f06eb.js +1 -0
  104. package/.next/static/chunks/app/ideas/[id]/page-b3dfe1e61fc656a4.js +1 -0
  105. package/.next/static/chunks/app/roadmap/[id]/page-b93a96f017c8d3dd.js +1 -0
  106. package/.next/static/chunks/app/social/page-5211c78a5f37df65.js +1 -0
  107. package/.next/static/chunks/app/updates/new/page-dcc67ffca587dcc2.js +1 -0
  108. package/.next/static/css/654766eb547c6bab.css +3 -0
  109. package/dist/scripts/analyze.js +1 -14
  110. package/dist/scripts/heartbeat.js +224 -130
  111. package/package.json +1 -1
  112. package/scripts/lib/video/compositions/DemoVideo.tsx +425 -0
  113. package/scripts/lib/video/compositions/Root.tsx +24 -1
  114. package/.next/static/chunks/429-c3cc9856a8a9d0d4.js +0 -1
  115. package/.next/static/chunks/827-d5a9d09b31d7eb1c.js +0 -1
  116. package/.next/static/chunks/app/goals/[id]/page-7a60dffb8ee860ed.js +0 -1
  117. package/.next/static/chunks/app/ideas/[id]/page-565f78e223048e74.js +0 -1
  118. package/.next/static/chunks/app/roadmap/[id]/page-54f51490662106f5.js +0 -1
  119. package/.next/static/chunks/app/social/page-574752c4e67413de.js +0 -1
  120. package/.next/static/chunks/app/updates/new/page-c5da11133140a7f4.js +0 -1
  121. package/.next/static/css/ba6f5fe78931fee2.css +0 -3
  122. /package/.next/static/{9C8sbF668J83TlKDjSvQm → wJT1h-ifHTtYVlXZG2PFS}/_buildManifest.js +0 -0
  123. /package/.next/static/{9C8sbF668J83TlKDjSvQm → wJT1h-ifHTtYVlXZG2PFS}/_ssgManifest.js +0 -0
@@ -3170,6 +3170,135 @@
3170
3170
  "[2026-02-24T01:11:47.740Z] Skipping PR creation (--skip-pr)",
3171
3171
  "[2026-02-24T01:11:47.741Z] Pushing branch ai/idea-fb-interview-script-create-jtbd-interview-script-for-first-6 to origin"
3172
3172
  ]
3173
+ },
3174
+ {
3175
+ "id": "impl-mlzwwp6g",
3176
+ "idea_id": "idea-fb3eba74",
3177
+ "status": "pr_failed",
3178
+ "repo_name": "vibebusiness",
3179
+ "branch_name": "ai/idea-fb3eba74-impl",
3180
+ "workspace_path": "/Users/luismey/Code/vibebusiness/workspaces/vibebusiness",
3181
+ "logs": [
3182
+ "[2026-02-24T01:13:48.664Z] Implementation started",
3183
+ "[2026-02-24T01:13:48.666Z] Fetching latest from origin...",
3184
+ "[2026-02-24T01:13:50.194Z] Checking out branch: ai/idea-fb3eba74-impl",
3185
+ "[2026-02-24T01:13:50.231Z] Merging origin/main into ai/idea-fb3eba74-impl...",
3186
+ "[2026-02-24T01:13:50.244Z] Create PR only mode — skipping implementation",
3187
+ "[2026-02-24T01:13:50.260Z] Pushing branch ai/idea-fb3eba74-impl to origin",
3188
+ "[2026-02-24T01:13:51.445Z] Creating PR with gh CLI",
3189
+ "[2026-02-24T01:13:52.612Z] Failed to create PR: Command failed: gh pr create --title [AI] Add atomic file writes and per-file locking to storage layer --body-file /var/folders/s2/33gqhmnd6rg3cfpwzl5wvsrc0000gn/T/pr-body-impl-mlzwwp6g.md --base main\na pull request for branch \"ai/idea-fb3eba74-impl\" into branch \"main\" already exists:\nhttps://github.com/braza-ai/100xmanager/pull/29\n"
3190
+ ]
3191
+ },
3192
+ {
3193
+ "id": "impl-mlzwwsad",
3194
+ "idea_id": "idea-fb-interview-script",
3195
+ "status": "completed",
3196
+ "repo_name": "vibebusiness",
3197
+ "branch_name": "ai/idea-fb-interview-script-create-jtbd-interview-script-for-first-6",
3198
+ "workspace_path": "/Users/luismey/Code/vibebusiness/workspaces/vibebusiness",
3199
+ "logs": [
3200
+ "[2026-02-24T01:13:52.692Z] Implementation started",
3201
+ "[2026-02-24T01:13:52.694Z] Fetching latest from origin...",
3202
+ "[2026-02-24T01:13:54.069Z] Checking out branch: ai/idea-fb-interview-script-create-jtbd-interview-script-for-first-6",
3203
+ "[2026-02-24T01:13:54.097Z] Merging origin/main into ai/idea-fb-interview-script-create-jtbd-interview-script-for-first-6...",
3204
+ "[2026-02-24T01:13:54.127Z] Create PR only mode — skipping implementation",
3205
+ "[2026-02-24T01:13:54.156Z] Pushing branch ai/idea-fb-interview-script-create-jtbd-interview-script-for-first-6 to origin",
3206
+ "[2026-02-24T01:13:55.349Z] Creating PR with gh CLI"
3207
+ ]
3208
+ },
3209
+ {
3210
+ "id": "impl-mlzxfgc4",
3211
+ "idea_id": "idea-morning-briefing",
3212
+ "status": "completed",
3213
+ "repo_name": "vibebusiness",
3214
+ "branch_name": "ai/idea-morning-briefing-impl",
3215
+ "workspace_path": "/Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g0",
3216
+ "logs": [
3217
+ "[2026-02-24T01:28:23.649Z] Implementation started",
3218
+ "[2026-02-24T01:28:23.706Z] Using pre-configured worktree: /Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g0",
3219
+ "[2026-02-24T01:28:23.759Z] Using pre-configured worktree: /Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g2",
3220
+ "[2026-02-24T01:28:23.817Z] Using pre-configured worktree: /Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g4",
3221
+ "[2026-02-24T01:28:23.989Z] Using pre-configured worktree: /Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g5",
3222
+ "[2026-02-24T01:28:24.001Z] Using pre-configured worktree: /Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g6",
3223
+ "[2026-02-24T01:28:24.094Z] Using pre-configured worktree: /Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g7",
3224
+ "[2026-02-24T01:28:24.127Z] Using pre-configured worktree: /Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g8",
3225
+ "[2026-02-24T01:28:24.153Z] Using pre-configured worktree: /Users/luismey/Code/vibebusiness/workspaces/vibebusiness-worktrees/ai/idea-morning-briefing-impl-g9",
3226
+ "[2026-02-24T01:28:24.375Z] Running Claude Code to implement changes (timeout: 600s (model: sonnet))...",
3227
+ "[2026-02-24T01:28:24.398Z] Running Claude Code to implement changes (timeout: 600s (model: sonnet))...",
3228
+ "[2026-02-24T01:28:24.410Z] Running Claude Code to implement changes (timeout: 600s (model: sonnet))...",
3229
+ "[2026-02-24T01:28:24.462Z] Running Claude Code to implement changes (timeout: 600s (model: sonnet))...",
3230
+ "[2026-02-24T01:28:24.549Z] Running Claude Code to implement changes (timeout: 600s (model: sonnet))...",
3231
+ "[2026-02-24T01:28:24.562Z] Running Claude Code to implement changes (timeout: 600s (model: sonnet))...",
3232
+ "[2026-02-24T01:28:24.586Z] Running Claude Code to implement changes (timeout: 600s (model: sonnet))...",
3233
+ "[2026-02-24T01:28:24.595Z] Running Claude Code to implement changes (timeout: 600s (model: sonnet))...",
3234
+ "[2026-02-24T01:28:42.714Z] Claude Code completed successfully in 18s (668 chars)",
3235
+ "[2026-02-24T01:28:42.790Z] Changes detected, staging and committing...",
3236
+ "[2026-02-24T01:28:42.847Z] Skipping PR creation (--skip-pr)",
3237
+ "[2026-02-24T01:28:54.383Z] ...Claude Code working (30s elapsed, 0 chars output, 30s since last output)",
3238
+ "[2026-02-24T01:28:54.404Z] ...Claude Code working (30s elapsed, 0 chars output, 30s since last output)",
3239
+ "[2026-02-24T01:28:54.419Z] ...Claude Code working (30s elapsed, 0 chars output, 30s since last output)",
3240
+ "[2026-02-24T01:28:54.473Z] ...Claude Code working (30s elapsed, 0 chars output, 30s since last output)",
3241
+ "[2026-02-24T01:28:54.558Z] ...Claude Code working (30s elapsed, 0 chars output, 30s since last output)",
3242
+ "[2026-02-24T01:28:54.573Z] ...Claude Code working (30s elapsed, 0 chars output, 30s since last output)",
3243
+ "[2026-02-24T01:28:54.593Z] ...Claude Code working (30s elapsed, 0 chars output, 30s since last output)",
3244
+ "[2026-02-24T01:28:54.606Z] ...Claude Code working (30s elapsed, 0 chars output, 30s since last output)",
3245
+ "[2026-02-24T01:28:55.457Z] Claude Code completed successfully in 31s (784 chars)",
3246
+ "[2026-02-24T01:28:55.534Z] Changes detected, staging and committing...",
3247
+ "[2026-02-24T01:28:55.597Z] Skipping PR creation (--skip-pr)",
3248
+ "[2026-02-24T01:29:24.385Z] ...Claude Code working (60s elapsed, 0 chars output, 60s since last output)",
3249
+ "[2026-02-24T01:29:24.407Z] ...Claude Code working (60s elapsed, 0 chars output, 60s since last output)",
3250
+ "[2026-02-24T01:29:24.422Z] ...Claude Code working (60s elapsed, 0 chars output, 60s since last output)",
3251
+ "[2026-02-24T01:29:24.475Z] ...Claude Code working (60s elapsed, 0 chars output, 60s since last output)",
3252
+ "[2026-02-24T01:29:24.560Z] ...Claude Code working (60s elapsed, 0 chars output, 60s since last output)",
3253
+ "[2026-02-24T01:29:24.571Z] ...Claude Code working (60s elapsed, 0 chars output, 60s since last output)",
3254
+ "[2026-02-24T01:29:24.594Z] ...Claude Code working (60s elapsed, 0 chars output, 60s since last output)",
3255
+ "[2026-02-24T01:29:24.606Z] ...Claude Code working (60s elapsed, 0 chars output, 60s since last output)",
3256
+ "[2026-02-24T01:29:25.070Z] Claude Code completed successfully in 61s (1052 chars)",
3257
+ "[2026-02-24T01:29:25.138Z] Changes detected, staging and committing...",
3258
+ "[2026-02-24T01:29:25.206Z] Skipping PR creation (--skip-pr)",
3259
+ "[2026-02-24T01:29:37.738Z] Claude Code completed successfully in 73s (1340 chars)",
3260
+ "[2026-02-24T01:29:37.817Z] Changes detected, staging and committing...",
3261
+ "[2026-02-24T01:29:37.906Z] Skipping PR creation (--skip-pr)",
3262
+ "[2026-02-24T01:29:41.611Z] Claude Code completed successfully in 77s (944 chars)",
3263
+ "[2026-02-24T01:29:41.673Z] Changes detected, staging and committing...",
3264
+ "[2026-02-24T01:29:41.733Z] Skipping PR creation (--skip-pr)",
3265
+ "[2026-02-24T01:29:54.423Z] ...Claude Code working (90s elapsed, 0 chars output, 90s since last output)",
3266
+ "[2026-02-24T01:29:54.477Z] ...Claude Code working (90s elapsed, 0 chars output, 90s since last output)",
3267
+ "[2026-02-24T01:29:54.561Z] ...Claude Code working (90s elapsed, 0 chars output, 90s since last output)",
3268
+ "[2026-02-24T01:29:54.597Z] ...Claude Code working (90s elapsed, 0 chars output, 90s since last output)",
3269
+ "[2026-02-24T01:29:54.608Z] ...Claude Code working (90s elapsed, 0 chars output, 90s since last output)",
3270
+ "[2026-02-24T01:30:10.783Z] Claude Code completed successfully in 106s (1136 chars)",
3271
+ "[2026-02-24T01:30:10.858Z] Changes detected, staging and committing...",
3272
+ "[2026-02-24T01:30:10.916Z] Skipping PR creation (--skip-pr)",
3273
+ "[2026-02-24T01:30:18.590Z] Claude Code completed successfully in 114s (1092 chars)",
3274
+ "[2026-02-24T01:30:18.630Z] Changes detected, staging and committing...",
3275
+ "[2026-02-24T01:30:18.689Z] Skipping PR creation (--skip-pr)",
3276
+ "[2026-02-24T01:30:24.476Z] ...Claude Code working (120s elapsed, 0 chars output, 120s since last output)",
3277
+ "[2026-02-24T01:30:24.600Z] ...Claude Code working (120s elapsed, 0 chars output, 120s since last output)",
3278
+ "[2026-02-24T01:30:24.610Z] ...Claude Code working (120s elapsed, 0 chars output, 120s since last output)",
3279
+ "[2026-02-24T01:30:54.484Z] ...Claude Code working (150s elapsed, 0 chars output, 150s since last output)",
3280
+ "[2026-02-24T01:30:54.601Z] ...Claude Code working (150s elapsed, 0 chars output, 150s since last output)",
3281
+ "[2026-02-24T01:30:54.612Z] ...Claude Code working (150s elapsed, 0 chars output, 150s since last output)",
3282
+ "[2026-02-24T01:31:24.485Z] ...Claude Code working (180s elapsed, 0 chars output, 180s since last output)",
3283
+ "[2026-02-24T01:31:24.603Z] ...Claude Code working (180s elapsed, 0 chars output, 180s since last output)",
3284
+ "[2026-02-24T01:31:24.612Z] ...Claude Code working (180s elapsed, 0 chars output, 180s since last output)",
3285
+ "[2026-02-24T01:31:51.799Z] Claude Code completed successfully in 207s (1214 chars)",
3286
+ "[2026-02-24T01:31:51.868Z] Changes detected, staging and committing...",
3287
+ "[2026-02-24T01:31:51.926Z] Skipping PR creation (--skip-pr)",
3288
+ "[2026-02-24T01:31:54.485Z] ...Claude Code working (210s elapsed, 0 chars output, 210s since last output)",
3289
+ "[2026-02-24T01:31:54.605Z] ...Claude Code working (210s elapsed, 0 chars output, 210s since last output)",
3290
+ "[2026-02-24T01:32:24.489Z] ...Claude Code working (240s elapsed, 0 chars output, 240s since last output)",
3291
+ "[2026-02-24T01:32:24.605Z] ...Claude Code working (240s elapsed, 0 chars output, 240s since last output)",
3292
+ "[2026-02-24T01:32:44.546Z] Claude Code completed successfully in 260s (1094 chars)",
3293
+ "[2026-02-24T01:32:44.623Z] Changes detected, staging and committing...",
3294
+ "[2026-02-24T01:32:44.691Z] Skipping PR creation (--skip-pr)",
3295
+ "[2026-02-24T01:32:54.606Z] ...Claude Code working (270s elapsed, 0 chars output, 270s since last output)",
3296
+ "[2026-02-24T01:33:24.610Z] ...Claude Code working (300s elapsed, 0 chars output, 300s since last output)",
3297
+ "[2026-02-24T01:33:54.579Z] ...Claude Code working (330s elapsed, 0 chars output, 330s since last output)",
3298
+ "[2026-02-24T01:34:12.153Z] Claude Code completed successfully in 348s (1857 chars)",
3299
+ "[2026-02-24T01:34:12.229Z] Changes detected, staging and committing...",
3300
+ "[2026-02-24T01:34:12.318Z] Skipping PR creation (--skip-pr)"
3301
+ ]
3173
3302
  }
3174
3303
  ]
3175
3304
  }
@@ -0,0 +1,66 @@
1
+ {
2
+ "slug": "while-you-slept-demo",
3
+ "title": "While You Slept",
4
+ "variation": "demo-v1",
5
+ "slides": [
6
+ {
7
+ "type": "cover",
8
+ "title": "11:47 PM",
9
+ "subtitle": "You close the laptop.",
10
+ "background_style": "dark-gradient"
11
+ },
12
+ {
13
+ "type": "terminal",
14
+ "title": "Heartbeat Running",
15
+ "content": "Scanning competitors...\nBenchmarking metrics...\nDetecting opportunities...",
16
+ "background_style": "terminal"
17
+ },
18
+ {
19
+ "type": "key_point",
20
+ "title": "3:17 AM",
21
+ "content": "VibeBusiness is working",
22
+ "background_style": "dark-glow"
23
+ },
24
+ {
25
+ "type": "notification",
26
+ "title": "6:30 AM",
27
+ "content": "7 new ideas ready for review",
28
+ "background_style": "notification"
29
+ },
30
+ {
31
+ "type": "kanban",
32
+ "title": "Your Kanban Board",
33
+ "items": [
34
+ "Inbox\n(12)",
35
+ "Researching\n(3)",
36
+ "Ready\n(7)",
37
+ "In Progress\n(4)"
38
+ ],
39
+ "background_style": "kanban"
40
+ },
41
+ {
42
+ "type": "pipeline",
43
+ "title": "Full Lifecycle",
44
+ "content": "Approve → Branch → PR → Merged → Verified",
45
+ "label": "+12% conversion",
46
+ "background_style": "pipeline"
47
+ },
48
+ {
49
+ "type": "cta",
50
+ "title": "Stop guessing. Start shipping.",
51
+ "cta_text": "npm install -g vibebusiness",
52
+ "background_style": "gradient"
53
+ }
54
+ ],
55
+ "audio": {
56
+ "src": "tech-innovation.mp3",
57
+ "volume": 0.25,
58
+ "fadeInSeconds": 0.5,
59
+ "fadeOutSeconds": 1.0
60
+ },
61
+ "theme": {
62
+ "background_style": "terminal-dark",
63
+ "primary_color": "#10b981",
64
+ "text_color": "#ffffff"
65
+ }
66
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibebusiness",
3
- "version": "1.2.80",
3
+ "version": "1.2.83",
4
4
  "description": "AI-powered autonomous product manager. Research. Build. Ship. Grow.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "private": false,
@@ -549,11 +549,8 @@ async function runClaudeAnalysis(
549
549
  console.log(`Working directory: ${workDir}`);
550
550
  console.log(`Timeout: ${timeoutMs / 1000}s`);
551
551
 
552
- // Create a temporary file with the prompt
553
- const tempPromptFile = path.join(DATA_DIR, '.analysis-prompt.txt');
554
- fs.writeFileSync(tempPromptFile, prompt);
555
-
556
552
  // Run Claude Code with the prompt via stdin (avoids shell arg length limits)
553
+ console.log('[analyze] Prompt sent via stdin — no temp file written');
557
554
  const claude = spawn('claude', [
558
555
  '--print',
559
556
  '--dangerously-skip-permissions',
@@ -587,9 +584,6 @@ async function runClaudeAnalysis(
587
584
  try { claude.kill('SIGKILL'); } catch {}
588
585
  }, 5000);
589
586
 
590
- // Clean up temp file
591
- try { fs.unlinkSync(tempPromptFile); } catch {}
592
-
593
587
  const elapsed = Math.round((Date.now() - startTime) / 1000);
594
588
  reject(new Error(`Claude Code timed out after ${elapsed}s (limit: ${timeoutMs / 1000}s)`));
595
589
  }
@@ -614,13 +608,6 @@ async function runClaudeAnalysis(
614
608
  const timing = progress.stop();
615
609
  clearTimeout(timeout);
616
610
 
617
- // Clean up temp file
618
- try {
619
- fs.unlinkSync(tempPromptFile);
620
- } catch {
621
- // Ignore cleanup errors
622
- }
623
-
624
611
  const elapsed = timing.totalSeconds;
625
612
  if (code === 0) {
626
613
  logWarn('analyze:runClaudeAnalysis', `completed in ${elapsed}s phases=[${timing.phases.join(',')}]`);
@@ -636,7 +623,6 @@ async function runClaudeAnalysis(
636
623
  isResolved = true;
637
624
  progress.stop();
638
625
  clearTimeout(timeout);
639
- try { fs.unlinkSync(tempPromptFile); } catch {}
640
626
  reject(error);
641
627
  });
642
628
  });
@@ -0,0 +1,163 @@
1
+ # /build-page — Landing Page Builder
2
+
3
+ ## Usage
4
+ ```
5
+ /build-page "landing page for SaaS founders"
6
+ /build-page "pricing page"
7
+ /build-page "comparison vs CompetitorX"
8
+ /build-page "feature page for AI automation"
9
+ ```
10
+
11
+ ## Input
12
+ - `$ARGUMENTS` — **required**: page type + target audience or comparison subject
13
+
14
+ ## Process
15
+
16
+ ### Step 1: Parse Intent
17
+ Extract from `$ARGUMENTS`:
18
+ - **Page type**: landing, pricing, comparison, feature, about
19
+ - **Target audience**: who is this page for? (e.g., "developers", "SaaS founders", "lawyers")
20
+ - **Comparison subject**: if comparison page, which competitor?
21
+
22
+ ### Step 2: Load Context
23
+ 1. Read `data/positioning.json` — select relevant copy for the audience and funnel stage
24
+ 2. Read `data/competitors.json` — for comparison pages, load the specific competitor
25
+ 3. Read `data/config.json` — detect project framework from repos (Next.js, plain HTML, etc.)
26
+ 4. Read `data/pages.json` — check if a similar page already exists
27
+
28
+ ### Step 2.5: Select Conversion Framework
29
+
30
+ For **landing pages**, use the **StoryBrand 7-part narrative framework** as the default structure. StoryBrand ensures the customer is the hero and the product is the guide:
31
+
32
+ 1. **Character** — The customer is the hero, not the brand. Open with their desire. What do they want?
33
+ 2. **Problem** — Three layers:
34
+ - *External* (tangible obstacle): "20 ideas, zero data on which one matters"
35
+ - *Internal* (emotional frustration): "Building alone, deciding alone"
36
+ - *Philosophical* (injustice): "Solo founders shouldn't have to choose between building and strategizing"
37
+ 3. **Guide** — Position the brand as the guide, not the hero. Show:
38
+ - *Empathy*: "We understand because we faced the same problem"
39
+ - *Authority*: Social proof, stats, trust signals
40
+ 4. **Plan** — Exactly 3 steps. Reduce anxiety by making the path simple and clear.
41
+ 5. **Call to Action** — Two types:
42
+ - *Direct CTA*: The primary action (install, buy, sign up)
43
+ - *Transitional CTA*: Lower commitment (waitlist, newsletter, demo)
44
+ 6. **Failure** — What happens if they don't act? Paint the stakes. Be specific and blunt.
45
+ 7. **Success** — What life looks like after. Aspirational, concrete outcomes.
46
+
47
+ This framework applies to landing pages only. Pricing, comparison, and feature pages use their own templates below.
48
+
49
+ ### Step 3: Determine Page Architecture
50
+ Based on page type, plan the section layout:
51
+
52
+ **Landing page (StoryBrand-mapped):**
53
+ 1. Hero — **Character**: customer desire headline, not product pitch. Transitional CTA only (waitlist/newsletter). Save direct CTA for after the narrative builds.
54
+ 2. Pain Points — **Problem**: 3 cards mapped to External / Internal / Philosophical problems.
55
+ 3. Guide — **Guide**: empathy statement + authority stats + 4 compact trust bullets reframed as outcomes (not features).
56
+ 4. The Plan — **Plan**: exactly 3 steps (Install / Scan / Ship). Keep it dead simple.
57
+ 5. Demo — **Guide (extended)**: show real output. Best asset on any dev-tool landing page.
58
+ 6. Primary CTA — **Call to Action**: Direct CTA (install command) + Transitional CTA (waitlist form).
59
+ 7. Failure — **Failure**: 2-3 blunt statements about what happens without action. Dark background.
60
+ 8. Success — **Success**: 2-3 aspirational statements about life after. Light/accent background.
61
+ 9. Pricing — Value anchor: Free tier + paid tier. Move after success so the user is emotionally primed.
62
+ 10. FAQ — Objection handling: 5-6 questions that address remaining doubts.
63
+ 11. Final CTA — CTA repeat: short terminal block + waitlist form.
64
+
65
+ **Pricing page:**
66
+ 1. Hero — pricing headline
67
+ 2. Pricing tiers — cards with features, highlighted recommended plan
68
+ 3. Feature comparison table
69
+ 4. FAQ — pricing-specific questions
70
+ 5. CTA — start trial / contact sales
71
+
72
+ **Comparison page:**
73
+ 1. Hero — "[Product] vs [Competitor]"
74
+ 2. Quick comparison table
75
+ 3. Detailed feature-by-feature comparison
76
+ 4. Where [Product] wins
77
+ 5. Social proof from switchers
78
+ 6. Migration CTA
79
+
80
+ **Feature page:**
81
+ 1. Hero — feature-specific headline
82
+ 2. Problem → Solution narrative
83
+ 3. Feature details with screenshots/visuals
84
+ 4. Use cases
85
+ 5. CTA
86
+
87
+ ### Step 4: Select Copy
88
+ For each section, select or adapt copy from `positioning.json`:
89
+
90
+ **StoryBrand mapping from positioning.json fields:**
91
+ - `pain_points` → **Problem** cards: select 3 and assign to External / Internal / Philosophical
92
+ - `social_proof` → **Guide** authority section (stats, testimonials, trust signals)
93
+ - `messaging_pillars[].counter_objections` → **Guide** empathy ("we understand...")
94
+ - `ctas` → **Call to Action**: map to Direct CTA (primary action) + Transitional CTA (lower commitment)
95
+ - `objection_handlers` → **FAQ** section
96
+ - `messaging_pillars[].key_messages` → **Success** section (aspirational outcomes)
97
+
98
+ General rules:
99
+ - Match headline by funnel stage and audience
100
+ - Select relevant CTAs
101
+ - Pull social proof
102
+ - Adapt objection handlers for FAQ section
103
+
104
+ If positioning data is insufficient, generate new copy consistent with the existing framework.
105
+
106
+ ### Step 5: Generate Code
107
+ Detect the project framework and generate appropriate code:
108
+
109
+ **For Next.js projects** (most common):
110
+ - Create a React component with TypeScript
111
+ - Use Tailwind CSS for styling
112
+ - Make it fully responsive (mobile-first)
113
+ - Include proper semantic HTML (h1, h2, sections, etc.)
114
+ - Add meta tags / SEO metadata via Next.js metadata API
115
+ - Use `'use client'` directive only if interactivity is needed
116
+
117
+ **For plain HTML projects:**
118
+ - Generate standalone HTML + CSS
119
+ - Include responsive design
120
+
121
+ **Code quality requirements:**
122
+ - Production-ready — not a prototype
123
+ - Accessible (proper ARIA labels, contrast ratios)
124
+ - Fast (no unnecessary JS, optimized images via next/image)
125
+ - SEO-friendly (semantic markup, proper heading hierarchy)
126
+
127
+ ### Step 6: Track Build
128
+ Update `data/pages.json`:
129
+ ```json
130
+ {
131
+ "last_updated": "YYYY-MM-DD",
132
+ "pages": [
133
+ {
134
+ "id": "page-001",
135
+ "name": "Landing Page for SaaS Founders",
136
+ "url_path": "/landing",
137
+ "type": "landing",
138
+ "status": "draft",
139
+ "created_at": "YYYY-MM-DD",
140
+ "positioning_snapshot": "YYYY-MM-DD",
141
+ "competitor_refs": [],
142
+ "files_created": ["src/app/landing/page.tsx"],
143
+ "metrics": {
144
+ "bounce_rate": null,
145
+ "conversion_rate": null,
146
+ "avg_time_on_page": null,
147
+ "visitors": null
148
+ }
149
+ }
150
+ ]
151
+ }
152
+ ```
153
+
154
+ ### Step 7: Output
155
+ Print:
156
+ - Files created (with full paths)
157
+ - Local dev URL to preview (e.g., `http://localhost:3000/landing`)
158
+ - Page structure summary (sections and their copy)
159
+ - Recommendation: review and run `/measure-page` once live
160
+
161
+ ## Output Files
162
+ - Generated page source code (location depends on framework)
163
+ - `data/pages.json` — updated page registry