Split from #60. This card is the Whop build only; the skills view is #96 and the public page is #94. Nothing is created or uploaded on Whop here: that happens from the operator lane once the previews are approved.
Work from ventures/mdecks on gh-pages, on a branch off gh-pages, with the PR against gh-pages. Whop hosts static web builds (a .zip of the site served at a whop.site address).
Add a Whop build of .mdeck as a static site with two human views: the member view inside a whop at /experiences/[experienceId] (editor and presenter) and the creator's dashboard view at /dashboard/[companyId] (the same editor, with Copy prompt for your agent). Both routes must serve the app when Whop fills in the IDs. A static host resolves a dynamic segment only with a real directory or a rewrite rule: the safe approach is to ship experiences/index.html and dashboard/index.html plus a 404.html that loads the same app, so any /experiences/<anything> and /dashboard/<anything> path serves it; pick that unless the Whop docs reachable from the worker say otherwise, and say in the PR which approach and why. Do not spend turns hunting for a build reference: if docs.whop.com is unreachable, go with the approach above.
A script, tools/whop-build.sh or similar, that produces the upload: one .zip of the build plus its sha256 checksum, written next to it.
A short section in README.md listing the view paths and the view types to register on Whop.
Only declare views the build actually implements; no openapi view (that comes with #61).
DONE: PR open against gh-pages; the script produces the zip and checksum; a local check serves /experiences/abc and /dashboard/xyz from the unzipped build; README lists the view paths; CI green
Base: gh-pages
Split from #60. This card is the Whop build only; the skills view is #96 and the public page is #94. Nothing is created or uploaded on Whop here: that happens from the operator lane once the previews are approved.
Work from `ventures/mdecks` on `gh-pages`, on a branch off `gh-pages`, with the PR against `gh-pages`. Whop hosts static web builds (a .zip of the site served at a whop.site address).
- Add a Whop build of .mdeck as a static site with two human views: the member view inside a whop at `/experiences/[experienceId]` (editor and presenter) and the creator's dashboard view at `/dashboard/[companyId]` (the same editor, with **Copy prompt for your agent**). Both routes must serve the app when Whop fills in the IDs. A static host resolves a dynamic segment only with a real directory or a rewrite rule: the safe approach is to ship `experiences/index.html` and `dashboard/index.html` plus a `404.html` that loads the same app, so any `/experiences/<anything>` and `/dashboard/<anything>` path serves it; pick that unless the Whop docs reachable from the worker say otherwise, and say in the PR which approach and why. Do not spend turns hunting for a build reference: if docs.whop.com is unreachable, go with the approach above.
- A script, `tools/whop-build.sh` or similar, that produces the upload: one .zip of the build plus its sha256 checksum, written next to it.
- A short section in README.md listing the view paths and the view types to register on Whop.
- Only declare views the build actually implements; no `openapi` view (that comes with #61).
DONE: PR open against gh-pages; the script produces the zip and checksum; a local check serves `/experiences/abc` and `/dashboard/xyz` from the unzipped build; README lists the view paths; CI green
teahubxyz
added the ready label 2026-10-18 01:52:39 +00:00
⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch time/card-95.
⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch `time/card-95`.
<!-- time {"beat":"dispatched","launched":true,"worker":"anthropic"} -->
⏱️ Time: the worker call failed: sonnet stopped without a PR after 43 steps: Network works. Find the build reference.. Comment /time retry to try again.
⏱️ Time: the worker call failed: `sonnet stopped without a PR after 43 steps: Network works. Find the build reference.`. Comment `/time retry` to try again.
<!-- time {"beat":"error"} -->
The engine now honors the Base: gh-pages line at the top of this card (#121 landed): the worker starts on time/card-95-gh-pages, cut from gh-pages, where ventures/mdecks actually lives, and the PR targets gh-pages. The first run (43 steps on main, where the folder does not exist) was the engine's fault, not the card's.
/time retry
The engine now honors the `Base: gh-pages` line at the top of this card (#121 landed): the worker starts on `time/card-95-gh-pages`, cut from `gh-pages`, where `ventures/mdecks` actually lives, and the PR targets `gh-pages`. The first run (43 steps on `main`, where the folder does not exist) was the engine's fault, not the card's.
⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch time/card-95-gh-pages.
⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch `time/card-95-gh-pages`.
<!-- time {"beat":"dispatched","launched":true,"worker":"anthropic"} -->
⏱️ Time: sonnet opened PR #131 (21 steps, claude-sonnet-5-5). Review and landing follow on the next beat.
⏱️ Time: `sonnet` opened PR #131 (21 steps, claude-sonnet-5-5). Review and landing follow on the next beat.
<!-- time {"beat":"dispatched","worker":"anthropic","pr":131,"steps":21,"seat":"sonnet","model":"claude-sonnet-5-5"} -->
⏱️ Time: PR #131 is up for this card. haiku reviewed it on the PR.
⏱️ Time: PR #131 is up for this card. `haiku` reviewed it on the PR.
<!-- time {"beat":"pr","pr":131,"launched":false,"seat":"haiku","as":"seat","review":"venice","seats":["haiku"]} -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Base: gh-pages
Split from #60. This card is the Whop build only; the skills view is #96 and the public page is #94. Nothing is created or uploaded on Whop here: that happens from the operator lane once the previews are approved.
Work from
ventures/mdecksongh-pages, on a branch offgh-pages, with the PR againstgh-pages. Whop hosts static web builds (a .zip of the site served at a whop.site address)./experiences/[experienceId](editor and presenter) and the creator's dashboard view at/dashboard/[companyId](the same editor, with Copy prompt for your agent). Both routes must serve the app when Whop fills in the IDs. A static host resolves a dynamic segment only with a real directory or a rewrite rule: the safe approach is to shipexperiences/index.htmlanddashboard/index.htmlplus a404.htmlthat loads the same app, so any/experiences/<anything>and/dashboard/<anything>path serves it; pick that unless the Whop docs reachable from the worker say otherwise, and say in the PR which approach and why. Do not spend turns hunting for a build reference: if docs.whop.com is unreachable, go with the approach above.tools/whop-build.shor similar, that produces the upload: one .zip of the build plus its sha256 checksum, written next to it.openapiview (that comes with #61).DONE: PR open against gh-pages; the script produces the zip and checksum; a local check serves
/experiences/abcand/dashboard/xyzfrom the unzipped build; README lists the view paths; CI green⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch
time/card-95.⏱️ Time: the worker call failed:
sonnet stopped without a PR after 43 steps: Network works. Find the build reference.. Comment/time retryto try again./time retry
The engine now honors the
Base: gh-pagesline at the top of this card (#121 landed): the worker starts ontime/card-95-gh-pages, cut fromgh-pages, whereventures/mdecksactually lives, and the PR targetsgh-pages. The first run (43 steps onmain, where the folder does not exist) was the engine's fault, not the card's.⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch
time/card-95-gh-pages.⏱️ Time:
sonnetopened PR #131 (21 steps, claude-sonnet-5-5). Review and landing follow on the next beat.⏱️ Time: PR #131 is up for this card.
haikureviewed it on the PR.⏱️ Time: approved and green, merged PR #131. Card done.