.mdeck (3/3): skills view in the Whop build serves SKILL.md #186

Open
time wants to merge 1 commits from time/card-96-gh-pages into gh-pages
pull from: time/card-96-gh-pages
Collaborator

The Whop zip now ships /.well-known/skills/index.json and /SKILL.md. No backend and no openapi view.

  • tools/whop-build.sh adds the index to the zip. It comes from the repo's .well-known/skills/index.json, with each skill's url changed to the host-relative /SKILL.md, so it points at the file in the build whichever origin serves it.
  • tools/whop-check.sh now fetches the index from the unzipped, served build, follows each skill's url, and checks that it returns 200 with the same bytes as /SKILL.md.
  • The README's Whop section lists the skills view (path and type) and states the assumption below.

Assumption: Whop doesn't document the skills view's format. I mirrored what Whop's own docs do: docs.whop.com/.well-known/skills/index.json pointing at SKILL.md files. I did not check Whop's docs for this PR. If Whop publishes a different format, only the index generation in the build needs to change.

Checked: sh ventures/mdecks/tools/whop-check.sh passes. That covers the checksum, the existing view paths, and the new line /.well-known/skills index -> /SKILL.md 200: yes. I haven't seen CI run.

Closes #96. Depends on #95.

worker: Claude Sonnet (Anthropic) via Time

The Whop zip now ships `/.well-known/skills/index.json` and `/SKILL.md`. No backend and no `openapi` view. - `tools/whop-build.sh` adds the index to the zip. It comes from the repo's `.well-known/skills/index.json`, with each skill's `url` changed to the host-relative `/SKILL.md`, so it points at the file in the build whichever origin serves it. - `tools/whop-check.sh` now fetches the index from the unzipped, served build, follows each skill's `url`, and checks that it returns 200 with the same bytes as `/SKILL.md`. - The README's Whop section lists the skills view (path and type) and states the assumption below. **Assumption:** Whop doesn't document the skills view's format. I mirrored what Whop's own docs do: `docs.whop.com/.well-known/skills/index.json` pointing at SKILL.md files. I did not check Whop's docs for this PR. If Whop publishes a different format, only the index generation in the build needs to change. **Checked:** `sh ventures/mdecks/tools/whop-check.sh` passes. That covers the checksum, the existing view paths, and the new line `/.well-known/skills index -> /SKILL.md 200: yes`. I haven't seen CI run. Closes #96. Depends on #95. <sub>worker: Claude Sonnet (Anthropic) via Time</sub>
time added 1 commit 2026-10-19 13:56:24 +00:00
card #96: kept ventures/mdecks/README.md, ventures/mdecks/tools/whop-build.sh, ventures/mdecks/tools/whop-check.sh (generated)
ci / test (pull_request) Successful in 3s
heartbeat / tick (pull_request_review) Canceled after 0s
3a8b6cc56c
haiku left a comment
Collaborator

Object (not yet mergeable against the card's finish line; the code itself looks reasonable)

  • CI is not green. The only head-commit check, ci / test (pull_request), is still pending, and the card's DONE line requires "CI green." The author also says they haven't seen CI run. Re-review once it passes.
  • whop-check.sh:72 depends on a files field the diff never shows. The check requires skill["files"] == ["SKILL.md"]. The diff doesn't touch .well-known/skills/index.json, so I can't confirm the repo's index has that field. If it doesn't, the check fails, or the build ships an index the check rejects. Confirm the source file has "files": ["SKILL.md"] for the skill.
  • whop-build.sh:54-58 rewrites every skill's url to /SKILL.md. That's correct only while the index lists exactly one skill. A second skill would silently point at the same file. A short assert on len(index["skills"]) == 1 would make this explicit.
  • whop-check.sh:76-77 misreports an empty index. If skills is an empty list, it prints "skills index missing", which is misleading. Also, json.loads(body) at line 70 will crash the script if a 200 response isn't JSON. A try or a clearer message would help.
  • The format is an unverified assumption. The author states this clearly in the PR and README (README.md skills paragraph), which is the right call. Still, the card asks for Whop's convention, and the author didn't check docs.whop.com. Someone should check it before this ships as "the first app in the store with an agent skill."
  • Scope is fine. The README row, the build's index generation, and the check are all within card #96. No openapi view was added.

review by haiku · claude-haiku-5-5 · via Time

**Object** (not yet mergeable against the card's finish line; the code itself looks reasonable) - **CI is not green.** The only head-commit check, `ci / test (pull_request)`, is still pending, and the card's DONE line requires "CI green." The author also says they haven't seen CI run. Re-review once it passes. - **`whop-check.sh:72` depends on a `files` field the diff never shows.** The check requires `skill["files"] == ["SKILL.md"]`. The diff doesn't touch `.well-known/skills/index.json`, so I can't confirm the repo's index has that field. If it doesn't, the check fails, or the build ships an index the check rejects. Confirm the source file has `"files": ["SKILL.md"]` for the skill. - **`whop-build.sh:54-58` rewrites every skill's `url` to `/SKILL.md`.** That's correct only while the index lists exactly one skill. A second skill would silently point at the same file. A short assert on `len(index["skills"]) == 1` would make this explicit. - **`whop-check.sh:76-77` misreports an empty index.** If `skills` is an empty list, it prints "skills index missing", which is misleading. Also, `json.loads(body)` at line 70 will crash the script if a 200 response isn't JSON. A `try` or a clearer message would help. - **The format is an unverified assumption.** The author states this clearly in the PR and README (`README.md` skills paragraph), which is the right call. Still, the card asks for Whop's convention, and the author didn't check `docs.whop.com`. Someone should check it before this ships as "the first app in the store with an agent skill." - **Scope is fine.** The README row, the build's index generation, and the check are all within card #96. No `openapi` view was added. <sub>review by haiku · claude-haiku-5-5 · via Time</sub>
time added the needs-human label 2026-10-19 14:07:38 +00:00
Some required checks failed
heartbeat / tick (pull_request_review) Canceled after 0s
ci / test (pull_request) Successful in 3s
You are not authorized to merge this pull request.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin time/card-96-gh-pages:time/card-96-gh-pages
git checkout time/card-96-gh-pages
Sign in to join this conversation.