Skip to content
Agentmart
Submit a tool

yes2sdk-verify

Validates a Yes2SDK WebGL or JavaScript/TypeScript build against one platform or all of them (Poki, CrazyGames, Yandex, GameDistribution, YouTube, Jest).

Skill by yes2games

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/yes2games-yes2sdk-verify

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Validates a Yes2SDK WebGL or JavaScript/TypeScript build against one platform or all of them (Poki, CrazyGames, Yandex, GameDistribution, YouTube, Jest). Use before an upload, or when asked whether a build would be rejected.

Use cases: testing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/yes2sdk-verify

What's inside

Skill name
yes2sdk-verify
Description
Validates a Yes2SDK WebGL or JavaScript/TypeScript build against one platform or all of them (Poki, CrazyGames, Yandex, GameDistribution, YouTube, Jest). Use before an upload, or when asked whether a build would be rejected.
License
MIT
Instructions
83 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

# Verifying a Yes2SDK build

This is the single source of the verify procedure. Single-platform checks,
all-platform sweeps and the check at the end of `$yes2sdk-integrate` all run it.
Edit the procedure here, not in the skills that call it.

## Inputs

- **Platform**: one of `poki`, `crazygames`, `yandex`, `gamedistribution`,
  `youtube`, `jest`, or `all`. Take it from the request ("verify for Poki", "check every
  platform"). When the request names none, use `all`.
- **Build**: the user's **extracted** WebGL/HTML5 build folder. If the request
  gives no path, ask once, then reuse the same build for every platform in this
  run. On a JavaScript/TypeScript project, build it first with the project's own
  build script (Vite, `base: './'`) and verify the output folder (`dist/` unless
  the config says otherwise), never the source tree or a dev-server page, which
  carry the mock instead of what ships. The build should contain no SDK of its own;
  the dashboard injects it at upload, and `yes2sdk:validate_integration` checks
  this.
- **Event log** (optional): an exported Inspector event log.

## Procedure

1. Read the build once. The plugin registers the **hosted** server, and it has no
   disk access, so `buildPath` there comes back as a blocking `build-path` FAIL.
   Read the build locally and pass it inline as `indexHtml`, `fileList` and
   `jsContents`. `jsContents` is what makes the Yes2SDK-bundling check possible;
   without it that check cannot run. Pass `buildPath` only when the user has the
   server running on their own machine.
2. An Inspector event log may be passed as `eventLogJson`, in addition to or
   instead of the build. The static checks need the build; the behavioral rules
   (gameplayStop before ads, reward only on `adViewed`, no ads in the first 30s)
   exist only in the event log and cannot be derived from files. With only one of
   the two, state plainly which checks did not run.
3. Call `yes2sdk:validate_integration` once per platform being verified, reusing
   the same inline build.
4. For any FAIL whose fix is not obvious from its hint, call
   `yes2sdk:get_compliance_rule` with the rule id before reporting.
5. Some platforms are graded partly by hand. For Jest, `yes2sdk:validate_integration`
   runs only the universal rules, and the platform's own requirements are a manual
   launch checklist. Call `yes2sdk:get_platform_requirements` for that platform and
   list each manual item as not checked. A clean automated run there is never a pass.
6. Report as below.
7. Never soften or reinterpret a FAIL, and never mark one resolved by reasoning.
   The rule set is the platform's, not this plugin's; if a finding looks wrong,
   report it as returned and say so.

## Report

**One platform:** blocking FAILs first, then WARNs, each with its rule id and the
fix hint carried on the finding.

**All platforms:** triage by cause, not by platform. One missing `gameplayStop()`
fails many platforms and is one fix, not one finding each.

1. A one-line verdict: which platforms this build can ship to as-is.
2. A table: `platform | blocking FAILs | WARNs`.
3. The fix list in this order, each with the rule id and the file it applies to
   when you can identify it:
   - **Blocks everywhere**: a FAIL that appears on 3 or more platforms. Fix first;
     it is usually a universal (`U-`) rule.
   - **Blocks one platform**: per-platform FAILs, grouped under that platform.
   - **Warnings**: after the FAILs, briefly.
4. Any checks that could not run, and why. A sweep with no event log did not run
   the behavioral rules at all, and reporting that as a clean pass is the worst
   failure this skill can have. The same goes for a platform whose requirements
   include manual checks (Jest today): list those as not checked, never as passed.

## What each platform usually rejects on

Use these only to explain a finding in the user's terms. They are a summary, not
the rule set; `yes2sdk:validate_integration` is authoritative.

| Platform | Usual causes of rejection |
| --- | --- |
| `poki` | `gameplayStop()` missing before an interstitial; ads in the first 30s; interstitials more often than 1/60s; ads during loading; rewards granted in `afterAd` instead of `adViewed`; external `<script src="http...">`; non-responsive canvas. |
| `crazygames` | Missing wrapper options on init; loading not reported (`setLoadingProgress` / `startGameAsync`); gameplay not bracketed with `gameplayStart()`/`gameplayStop()`; audio not muted during ads; interstitials under the 3-minute floor; an `'unfilled'`/`'adblock'` ad error treated as a dismissal. |
| `yandex` | `startGameAsync()` missing, so the loading screen never dismisses; pause/resume not handled, so audio keeps playing during ads; `gameplayStop()` missing before ads; locale not read from `session.getLocale()`. |
| `gamedistribution` | `gameId` not set before the SDK loads; mute/pause not wired to `beforeAd`/`afterAd`; rewards granted in `afterAd` instead of `adViewed`; external scripts beyond GD's own SDK. |
| `youtube` | Strictest, and the checks are cert-mandatory: `startGameAsync()` not gating `gameReady()` (called during loading); `pause` not stopping game loop, audio and network; audio state not honored (`session.isAudioEnabled()` + `audioEnabledChange`); external scripts (CSP sandbox); cloud saves over the 3 MiB cap. |
| `jest` | Mobile-first, paid by IAP and subscriptions only, with no in-game ads: progression gated on a rewarded ad; guest progress not saved before a login prompt; no D1 to D7 notification sequence with images for registered players; incomplete purchases not recovered at startup; a subscription the player already holds offered again; two login prompts (Automatic login reminders, `jest.autoLoginReminders`, left on next to the game's own `auth.showRegistrationPrompt`); nothing saved in `exitRequested`; root-absolute asset paths. |

From yes2games/yes2sdk-codex-plugins, MIT.

Signals

Stars
0
Forks
0
Open issues
1
Last commit (this folder)
Oct 23, 2026 (7 days ago)
Last release
Oct 24, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from yes2games

Cite this page

yes2sdk-verify skill. Agent Mart. https://agentmart.dev/skills/yes2games-yes2sdk-verify (last updated 2026-10-24)