.mdeck as a Whop app, with the first agent skill in Whop's app store #60

Open
opened 2026-10-15 20:47:05 +00:00 by teahubxyz · 10 comments
Owner

Split 2026-10-18 (CEO): the worker ran out of turns twice at this scope (46 steps, still reading docs). The work is now three cards a Terra worker can finish: #94 (public page discoverable to agents), #95 (Whop static build with the two human views and the zip script), #96 (the skills view, after #95). This card stays open as the parent until the three land; it is no longer ready and carries no DONE: line of its own.


Original scope, kept for reference:

Whop's app store has 225 live apps, and none of them fill the skills or openapi view slots, the paths an app can declare for agents. Whop's own view_type filter returns zero apps for both. .mdeck already ships a SKILL.md and a static editor, and Whop now hosts static web builds (a .zip of the site, served at a whop.site address). So .mdeck can be the first app in the store with an agent skill, without adding a backend.

Work from ventures/mdecks on gh-pages, on a branch off gh-pages, with the PR against gh-pages:

  • 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, so check how a static Whop build resolves dynamic segments (docs.whop.com/llms.txt and the Create app build reference) before choosing an approach.
  • Add a skills view that serves the existing SKILL.md. Whop doesn't document this view's format yet, so mirror the convention Whop uses for its own docs skills (docs.whop.com/.well-known/skills/index.json pointing at SKILL.md files) and state that assumption in the PR.
  • No openapi view in this card. It comes with #61, which adds a real .mdeck API on Whop's hosting. Only declare views the build actually implements.
  • A script that produces the upload: one .zip of the site plus its checksum. Add a short section to README.md listing the view paths and the view types to register.
  • On the public site, add discoverability only. A first silicon-UX pass (an agent checking what it can find) showed the skill is invisible to an agent reading the page: its URL lives only in the button's JavaScript, and /llms.txt and /.well-known/skills/index.json return 404. Add <link rel="alternate" type="text/markdown" href="/SKILL.md"> and a plain "For agents: SKILL.md" link to the page, an /llms.txt pointing at SKILL.md, and the same skills index as the Whop build at /.well-known/skills/index.json. Nothing else on mdecks.yolopreneur.lol changes; the Whop build is an extra target, not a fork.
  • Nothing on Whop in this card. Creating the app, uploading the build and submitting it for review happen afterwards from the operator lane, once the operator approves the Whop previews.
**Split 2026-10-18 (CEO):** the worker ran out of turns twice at this scope (46 steps, still reading docs). The work is now three cards a Terra worker can finish: #94 (public page discoverable to agents), #95 (Whop static build with the two human views and the zip script), #96 (the skills view, after #95). This card stays open as the parent until the three land; it is no longer `ready` and carries no `DONE:` line of its own. --- Original scope, kept for reference: Whop's app store has 225 live apps, and none of them fill the `skills` or `openapi` view slots, the paths an app can declare for agents. Whop's own `view_type` filter returns zero apps for both. .mdeck already ships a SKILL.md and a static editor, and Whop now hosts static web builds (a .zip of the site, served at a whop.site address). So .mdeck can be the first app in the store with an agent skill, without adding a backend. Work from `ventures/mdecks` on `gh-pages`, on a branch off `gh-pages`, with the PR against `gh-pages`: - 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, so check how a static Whop build resolves dynamic segments (docs.whop.com/llms.txt and the Create app build reference) before choosing an approach. - Add a skills view that serves the existing SKILL.md. Whop doesn't document this view's format yet, so mirror the convention Whop uses for its own docs skills (`docs.whop.com/.well-known/skills/index.json` pointing at SKILL.md files) and state that assumption in the PR. - No `openapi` view in this card. It comes with #61, which adds a real .mdeck API on Whop's hosting. Only declare views the build actually implements. - A script that produces the upload: one .zip of the site plus its checksum. Add a short section to README.md listing the view paths and the view types to register. - On the public site, add discoverability only. A first silicon-UX pass (an agent checking what it can find) showed the skill is invisible to an agent reading the page: its URL lives only in the button's JavaScript, and `/llms.txt` and `/.well-known/skills/index.json` return 404. Add `<link rel="alternate" type="text/markdown" href="/SKILL.md">` and a plain "For agents: SKILL.md" link to the page, an `/llms.txt` pointing at SKILL.md, and the same skills index as the Whop build at `/.well-known/skills/index.json`. Nothing else on mdecks.yolopreneur.lol changes; the Whop build is an extra target, not a fork. - Nothing on Whop in this card. Creating the app, uploading the build and submitting it for review happen afterwards from the operator lane, once the operator approves the Whop previews.
teahubxyz added the ready label 2026-10-15 20:47:05 +00:00
Author
Owner

Scope note: this card stays a static build with the member, dashboard and skills views. The openapi view now comes with #61, which adds a real .mdeck API (and MCP) on Whop's hosting, so "no openapi view" here means "not in this card".

Scope note: this card stays a static build with the member, dashboard and skills views. The `openapi` view now comes with #61, which adds a real .mdeck API (and MCP) on Whop's hosting, so "no openapi view" here means "not in this card".

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch time/card-60.

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch `time/card-60`. <!-- time {"beat":"dispatched","launched":true,"worker":"anthropic"} -->

⏱️ Time: today's spend is $5.06 of the $5.00 cap; carrying on tomorrow. Nothing is lost; this card resumes once there is budget.

⏱️ Time: today's spend is $5.06 of the $5.00 cap; carrying on tomorrow. Nothing is lost; this card resumes once there is budget. <!-- time {"beat":"capped"} -->
Author
Owner

Operator note for the Whop-side step: Whop's app settings say skills_path and openapi_path require the app to have the ai_chat capability, so these two views are what Whop's AI chat reads. The app record doesn't show whether an account has that capability, so check it before registering the views. If it's gated, that may also explain why no app in the store uses them. Doesn't change the build in this card.

Operator note for the Whop-side step: Whop's app settings say `skills_path` and `openapi_path` require the app to have the `ai_chat` capability, so these two views are what Whop's AI chat reads. The app record doesn't show whether an account has that capability, so check it before registering the views. If it's gated, that may also explain why no app in the store uses them. Doesn't change the build in this card.
Author
Owner

Confirmed by test: setting skills_path on a hidden app returns "App must have the 'ai_chat' capability to set skills_path or openapi_path. This must be enabled by a whop admin internally." So registering the skills view needs Whop to enable ai_chat for the app; the operator will ask. The build in this card goes ahead unchanged. The skill index on the app's own site still works for outside agents (Claude, Cursor) whether or not Whop enables it. Same gate applies to #61's openapi view.

Confirmed by test: setting `skills_path` on a hidden app returns "App must have the 'ai_chat' capability to set skills_path or openapi_path. This must be enabled by a whop admin internally." So registering the skills view needs Whop to enable `ai_chat` for the app; the operator will ask. The build in this card goes ahead unchanged. The skill index on the app's own site still works for outside agents (Claude, Cursor) whether or not Whop enables it. Same gate applies to #61's `openapi` view.
Author
Owner

The Whop app now exists: .mdeck, app_oSko5dwSuWYtIv, hidden, on the operator's 🐰 business. For now it proxies the live site (base_url https://mdecks.yolopreneur.lol, member and dashboard paths both /), and the Whop proxy serves the page correctly. When this card's build is ready, the operator uploads it as a Whop-hosted build and sets the paths to /experiences/[experienceId] and /dashboard/[companyId]. Still missing before it can be listed: an icon. The skills view stays gated on Whop enabling ai_chat.

The Whop app now exists: `.mdeck`, `app_oSko5dwSuWYtIv`, hidden, on the operator's 🐰 business. For now it proxies the live site (`base_url` https://mdecks.yolopreneur.lol, member and dashboard paths both `/`), and the Whop proxy serves the page correctly. When this card's build is ready, the operator uploads it as a Whop-hosted build and sets the paths to `/experiences/[experienceId]` and `/dashboard/[companyId]`. Still missing before it can be listed: an icon. The skills view stays gated on Whop enabling `ai_chat`.

⏱️ Time: dispatched 7h ago and no PR closing #60 yet. Check the agent; comment /time retry to dispatch again.

⏱️ Time: dispatched 7h ago and no PR closing #60 yet. Check the agent; comment `/time retry` to dispatch again. <!-- time {"beat":"stuck"} -->
teahubxyz added queued and removed ready labels 2026-10-17 18:17:45 +00:00
time added ready and removed queued labels 2026-10-17 18:28:00 +00:00
Author
Owner

/time retry

CEO, on the owner's instruction: today's budget is unspent and this is the operator's one explicitly wanted venture (.mdeck on Whop). Start over from the capped run; the worker resumes the card's branch.

/time retry CEO, on the owner's instruction: today's budget is unspent and this is the operator's one explicitly wanted venture (.mdeck on Whop). Start over from the capped run; the worker resumes the card's branch.

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch time/card-60.

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch `time/card-60`. <!-- time {"beat":"dispatched","launched":true,"worker":"anthropic"} -->

⏱️ Time: the worker call failed: sonnet stopped without a PR after 46 steps: Network works. Find the static build docs.. Comment /time retry to try again.

⏱️ Time: the worker call failed: `sonnet stopped without a PR after 46 steps: Network works. Find the static build docs.`. Comment `/time retry` to try again. <!-- time {"beat":"error"} -->
teahubxyz added planned and removed ready labels 2026-10-18 01:53:34 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: teahubxyz/time#60