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.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +31 -31
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/kpis/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/card/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/comments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/implement/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/transition/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/transition/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/implementations/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/kpis/refresh/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/publish/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/publish/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/goals/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/goals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/goals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hypotheses/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/ideas/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/ideas/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/investors/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/investors/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/public/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/public/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +1 -1
- package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/social.html +1 -1
- package/.next/standalone/.next/server/app/social.rsc +2 -2
- package/.next/standalone/.next/server/app/updates/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/updates/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/updates/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/updates/new.html +1 -1
- package/.next/standalone/.next/server/app/updates/new.rsc +2 -2
- package/.next/standalone/.next/server/app/updates/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/updates/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +21 -21
- package/.next/standalone/.next/server/chunks/{3794.js → 7151.js} +27 -27
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/data/business-context.json +1 -1
- package/.next/standalone/data/heartbeat-sessions.json +228 -0
- package/.next/standalone/data/ideas.json +510 -34
- package/.next/standalone/data/implementations.json +129 -0
- package/.next/standalone/data/videos/staging/while-you-slept-demo.json +66 -0
- package/.next/standalone/data/videos/while-you-slept-demo-feed.mp4 +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/0.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/1.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/2.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/index.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/index.pack.old +0 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/analyze.ts +1 -15
- package/.next/standalone/templates/commands/build-page.md +163 -0
- package/.next/standalone/templates/commands/email-marketing.md +339 -0
- package/.next/standalone/templates/commands/growth-audit.md +85 -0
- package/.next/standalone/templates/commands/launch-campaign.md +84 -0
- package/.next/standalone/templates/commands/manage.md +147 -0
- package/.next/standalone/templates/commands/measure-page.md +89 -0
- package/.next/standalone/templates/commands/positioning.md +128 -0
- package/.next/standalone/templates/commands/pricing-analysis.md +91 -0
- package/.next/standalone/templates/commands/promo-copy.md +186 -0
- package/.next/standalone/templates/commands/promo-video.md +75 -0
- package/.next/standalone/templates/commands/research-competitors.md +124 -0
- package/.next/standalone/templates/commands/setup-payments.md +107 -0
- package/.next/standalone/templates/commands/setup-posthog.md +116 -0
- package/.next/standalone/templates/commands/social-media.md +47 -0
- package/.next/standalone/templates/commands/status-summary.md +103 -0
- package/.next/standalone/templates/commands/validate-idea.md +102 -0
- package/.next/standalone/templates/emails/__tests__/validate-templates.test.ts +147 -0
- package/.next/standalone/templates/emails/day3-activation-feedback.txt +14 -0
- package/.next/standalone/templates/emails/day30-pmf-feedback.txt +19 -0
- package/.next/static/chunks/429-8f4030371ebef5c3.js +1 -0
- package/.next/static/chunks/827-6cf4bfc10d1ff0c7.js +1 -0
- package/.next/static/chunks/app/goals/[id]/page-231bb4daae0f06eb.js +1 -0
- package/.next/static/chunks/app/ideas/[id]/page-b3dfe1e61fc656a4.js +1 -0
- package/.next/static/chunks/app/roadmap/[id]/page-b93a96f017c8d3dd.js +1 -0
- package/.next/static/chunks/app/social/page-5211c78a5f37df65.js +1 -0
- package/.next/static/chunks/app/updates/new/page-dcc67ffca587dcc2.js +1 -0
- package/.next/static/css/654766eb547c6bab.css +3 -0
- package/dist/scripts/analyze.js +1 -14
- package/dist/scripts/heartbeat.js +224 -130
- package/package.json +1 -1
- package/scripts/lib/video/compositions/DemoVideo.tsx +425 -0
- package/scripts/lib/video/compositions/Root.tsx +24 -1
- package/.next/static/chunks/429-c3cc9856a8a9d0d4.js +0 -1
- package/.next/static/chunks/827-d5a9d09b31d7eb1c.js +0 -1
- package/.next/static/chunks/app/goals/[id]/page-7a60dffb8ee860ed.js +0 -1
- package/.next/static/chunks/app/ideas/[id]/page-565f78e223048e74.js +0 -1
- package/.next/static/chunks/app/roadmap/[id]/page-54f51490662106f5.js +0 -1
- package/.next/static/chunks/app/social/page-574752c4e67413de.js +0 -1
- package/.next/static/chunks/app/updates/new/page-c5da11133140a7f4.js +0 -1
- package/.next/static/css/ba6f5fe78931fee2.css +0 -3
- /package/.next/static/{9C8sbF668J83TlKDjSvQm → wJT1h-ifHTtYVlXZG2PFS}/_buildManifest.js +0 -0
- /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
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|