feat: add game-web-portal skill - #29
Conversation
Agentic onboarding for a PC/Steam Game Web Portal: the agent creates or resumes a verified portal and returns an evidence-backed partner handoff. Nothing is reported as completed until its effect is verified. - skills/game-web-portal/SKILL.md — the state flow, entry conditions, and per-step contract - references/agentic-onboarding.md — acceptance scenarios, the per-state evidence contract, and the handoff template - references/portal-api.md — the Shop Builder API the portal steps call: endpoints per stage, the domain vs landing _id split, batch-patch and localization payload shapes, known API issues, response -> status mapping - registry rows in skills/README.md and the AGENTS.md/CLAUDE.md inventory Supersedes xsolla#25, which delegated the portal work to a skill that has no Shop Builder coverage.
|
@JavadManashti went with option (1) — the skill no longer depends on Two things that came out of writing it and are really platform questions, not skill ones: publication turns out to be a per-page selection (that's the Registry rows, |
|
Ran this through the new skill validator (landing in #28) against this branch: only 1 finding, and it's a mechanical one. Blocking: rm -rf .cursor/skills && mkdir -p .cursor/skills
for d in skills/*/; do [ -f "$d/SKILL.md" ] && cp -R "$d" ".cursor/skills/$(basename "$d")"; done
cp AGENTS.md CLAUDE.mdand committing the result should be all that's needed (CLAUDE.md is already in sync, so that step is a no-op here). Confirmed fixed from #25: registry rows are in both Non-blocking: owner is written as Nice fix on the actual blocker — this is mergeable once the |
Generated from skills/game-web-portal/ with the documented sync steps in .github/workflows/sync-providers.yml. CLAUDE.md was already in sync with AGENTS.md, so that step is a no-op.
|
@JavadManashti mirror is in — One heads-up on that snippet: |
|
Thanks for adding the Re-ran the validator (now live on #28 added an allowlist for Everything else passes: frontmatter, description length, both registries, generated-file sync, links, and the 500-line target (your SKILL.md is well under). The three API findings in your description — per-page publication payload, the |
|
Following @y-klochikhin's review — I want to separate the two things in it, because one is a product decision and the other is a mechanical bug we can fix in this PR today. The routing concern is real, and it's narrower than it looksI checked it against the branch rather than reasoning about it. Three skills would carry The actual defect is where the disambiguation lives.
But that's in the body, and routing happens off the description. By the time an agent reads line 37 it has already chosen this skill — the handoff never fires. Meanwhile Concrete collision — "build a web shop for my PC game":
Both match strongly, and nothing in either description breaks the tie. That's the ambiguity Yaroslav is pointing at, and it's demonstrable rather than theoretical. The fix is two sentences, not an architecture change. One disambiguating clause in each description:
That's the cheapest thing that makes the choice deterministic, and it's worth doing regardless of how the bigger question lands. Happy to push it if you'd like, @apyanzin-xsolla. The product question isn't mine or this PR's to settleWhether Site Builder belongs in a kit whose core is Commerce API + Headless Checkout — and whether it competes with I'd note the two of you may be describing different things: Yaroslav is reading this as Site Builder API integration, and @apyanzin-xsolla's reply frames it as agentic onboarding guidance for a Game Web Portal — where a web shop is one tab among News, Community, Login, Pay Station. Those imply different answers, so it's worth settling which one this actually is before debating whether it fits. Separately: the three API questionsYaroslav's point stands — these are Site Builder product questions, StatusCI is red here only because of the |
Agentic onboarding for a PC/Steam Game Web Portal: the agent creates or resumes a verified portal and returns an evidence-backed partner handoff. Supersedes #25 — same skill, with the delegation blocker fixed.
Plus the registry rows:
skills/README.md, and theAGENTS.mdinventory table + trigger block (mirrored into its byte-identicalCLAUDE.md).What changed since #25
@JavadManashti's blocker was that Step 4 routed pages, blocks, theme, localization and preview to
shop-setup, which has no Shop Builder coverage — so the portal work dead-ended. Option (1): the skill is now self-sufficient.references/portal-api.mddocuments the Shop Builder API the portal steps actually call — endpoints per stage, thedomainvs landing_idsplit, the batch-patch and localization payload shapes, known API issues, and a response → status mapping. Delegation is kept only for the surrounding products:merchant-setup,catalog-design,login-setup,headless-checkout-integration.Three findings worth a maintainer's eye:
POST .../landing/{domain}/publicationtakes a page selection —draftPagesIds— and the main page must be live or in the same selection; child pages cannot be published before it. This is whyverify-websitereturns 400: the CLI omits the selection. The exact field shape is marked unverified in the reference pending a live call.public-preview/public-preview-last-token, which is not part of the published API.public-preview-linkis.pa-v4-tokensession cookie), so the skill treats401/403asneeds_accessrather than a capability block. Worth deciding whether the kit wants a shared convention here.There is no Community page template, so that section returns
needs_inputrather than guessing a layout. Launcher builds, installers and downloads are not exposed by this API and stayblocked_capability.Review items from #25
status: draft— added.a.pyanzin, per repo convention rather than the guide's GitHub-handle format.domain: orchestrator— unchanged; theshop-setuprouting line is yours to add as you described.Agent test
Prompt:
Use Xsolla CLI to set up my PC Game Portal.plus a Steam store URL, merchant ID, project ID, domain, and primary locale.Result: 12/12 hard-case runs passed with the skill loaded, versus 6/12 with no context. Judge confidence 100%, first-try success 100%, pass@3 100%, zero safety errors. Mean token usage 1.41× the official-docs baseline against a ≤1.5× target. 36 runs across four hard PC onboarding scenarios, three variants, three repetitions.
Source, including the specification and the eval harness: https://github.com/apyanzin-xsolla/game-web-portal