Agent skill

Hz Store Submit

by meta-quest in meta-quest/agentic-tools

Guides end-to-end Meta VR and Horizon OS app submission to the Meta Horizon Store — build validation, store-readiness checks, asset preparation, upload, and submission tracking.

Apache-2.0Auto-check passedGame Development

Install Hz Store Submit

skills CLI
$ npx skills add meta-quest/agentic-tools --skill hz-store-submit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install meta-quest/agentic-tools hz-store-submit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hz-store-submit .claude/skills/hz-store-submit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
hz-store-submit
GitHub stars
215
Token cost
~3k tokens
SKILL.md length
1,392 words
Files
3 (incl. references)
Skills in repo
34
Repo updated
First seen
Licence
Apache-2.0

At a glance

Guides end-to-end Meta VR and Horizon OS app submission to the Meta Horizon Store — build validation, store-readiness checks, asset preparation, upload, and submission tracking.

  • Works in 7 steps: Build Validation → Store Readiness Checks → Asset Preparation → …
  • Preparing a Meta VR app for store publishing
  • SKILL.md covers When to Use This Skill, Submission Workflow Overview, Step 1: Build Validation and Step 2: Store Readiness Checks, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Hz Store Submit is an agent skill from meta-quest/agentic-tools. Guides end-to-end Meta VR and Horizon OS app submission to the Meta Horizon Store — build validation, store-readiness checks, asset preparation, upload, and submission tracking. Use when preparing a Meta VR app for store publishing. Build paths: all Meta VR app stacks; use hz-quest-verify-first if the build path is unclear.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/rejection-troubleshooting.md` and `references/submission-checklist.md`).

It sits in Game Development. It works with Android. The repository describes itself as: Agent Skills for Meta Quest/Horizon OS VR Development. The licence is Apache-2.0.

When your agent uses it

  • Preparing a Meta VR app for store publishing

Example prompts

  • “Use the hz-store-submit skill to guide end-to-end Meta VR and Horizon OS app submission to the Meta Horizon Store — build validation…”
  • “/hz-store-submit”

Requirements

  • Pre-approved tools (allowed-tools): Bash(metavr:*), Bash(hzdb:*)

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Build Validation
  2. Store Readiness Checks
  3. Asset Preparation
  4. Dashboard Setup
  5. Upload
  6. Submit for Review
  7. Tracking

What it can do on your machine

Read from SKILL.md and the folder at commit 3a8553d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(metavr:*)
    • Bash(hzdb:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developer.meta.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Hz Store Submit loads about 3k tokens when it runs, and up to ~4.8k if it reads all its reference files. Until then it costs about 85 tokens; SKILL.md has 1,392 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~85
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from meta-quest/agentic-tools at commit 3a8553d, republished under its Apache-2.0 licence (© meta-quest). 1,392 words, ~2,980 tokens.

Download SKILL.mdSave it as .claude/skills/hz-store-submit/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
hz-store-submit
description
Guides end-to-end Meta VR and Horizon OS app submission to the Meta Horizon Store — build validation, store-readiness checks, asset preparation, upload, and submission tracking. Use when preparing a Meta VR app for store publishing. Build paths: all Meta VR app stacks; use hz-quest-verify-first if the build path is unclear.
allowed-tools
Bash(metavr:*), Bash(hzdb:*)
license
Apache-2.0

Store Submission Skill

Guide the end-to-end process of submitting a Meta VR application to the Meta Horizon Store. This skill covers build validation, store-readiness checks, store asset preparation, upload, and submission tracking.

When to Use This Skill

Use this skill when you need to:

  • Prepare a Meta VR app build for store submission
  • Validate that an APK meets the Horizon Store's publishing requirements before uploading
  • Prepare and validate store listing assets (icons, screenshots, videos, descriptions)
  • Walk through the submission workflow on the developer dashboard
  • Track a submission through the review process
  • Troubleshoot submission rejections

Run the VRC (Virtual Reality Check) validation inline (see the VRC checklist below) for thorough compliance testing before proceeding to submission.

Submission Workflow Overview

The full submission process follows this order:

1. Build Validation     → Verify APK is correctly signed, targets ARM64, meets packaging requirements
2. Store Readiness      → Run through the readiness checks, fix any violations
3. Asset Preparation    → Prepare store listing images, videos, descriptions, metadata
4. Dashboard Setup      → Create app on developer.meta.com, configure pricing, age rating
5. Upload               → Upload the build to the platform
6. Submission           → Submit for review
7. Tracking             → Monitor review status, respond to feedback

Step 1: Build Validation

Before uploading, validate the APK meets basic packaging requirements.

APK Signing

The release APK must be signed with an Android keystore. Debug-signed APKs will be rejected.

bash
# Verify the APK is signed (not debug-signed)
metavr adb shell "pm dump <package> | grep -i signature"

The signing key must remain consistent across updates. Changing the signing key requires a new app entry.

Manifest Checks
bash
# Install the APK on a connected device to test
metavr app install path/to/release.apk

# Verify it launches correctly
metavr app launch <package>

# Check the manifest for required fields
metavr adb shell "dumpsys package <package> | head -50"

Required manifest elements:

  • android:targetSdkVersion >= 32
  • android:minSdkVersion >= 29
  • Target architecture: ARM64 only (no x86 or ARM32)
  • Application must declare the com.oculus.intent.category.VR intent category
  • Version code must be higher than any previously uploaded build
Performance Baseline

Run the app on a Meta VR device and verify:

  • Maintains 72 Hz minimum frame rate (90 Hz recommended for Quest 3)
  • No thermal throttling warnings within the first 5 minutes of normal use
  • Load time under 15 seconds from launch to interactive content
bash
# Monitor frame rate
metavr adb logcat --tag VrApi | grep FPS

# Check thermal state
metavr device battery

# Watch for thermal warnings
metavr adb logcat --tag ThermalService --level W

Step 2: Store Readiness Checks

Run through the VRC checklist below for a detailed walkthrough. Key VRC categories:

  • Packaging — Release-signed APK (APK Signature Scheme v2; v1-only is rejected), targetSdkVersion >= 32 (2D panel apps: 34+), minSdkVersion >= 29, ARM64-only, a version code strictly higher than any previously uploaded build, and the com.oculus.intent.category.VR intent category declared in the launch activity.
  • Functional — No crashes or ANRs in any core flow (first-run setup, permission dialogs, rapid scene transitions, low-battery/thermal). Keep long network, IO, and asset work off the main thread.
  • Performance — Sustained 72 Hz on Quest 2 / 90 Hz on Quest 3 and Meta VR Glasses, no thermal throttling within 5 minutes, interactive within 15 seconds of launch, and no memory leaks over an extended session.
  • Security / Permissions — Declare only permissions the app actually uses; disallowed permissions cause automatic rejection before manual review. Remove telephony/SMS/contacts (CALL_PHONE, SEND_SMS, READ_CONTACTS), precise location (ACCESS_FINE_LOCATION), and unjustified READ_EXTERNAL_STORAGE; guard optional hardware with hasSystemFeature() and drop the matching <uses-permission> when unused. Audit the merged manifest (including third-party libraries) with aapt dump permissions <app>.apk. Paid apps must verify entitlement within 10 seconds of launch (no internet required) or they are auto-rejected. See the prohibited and review-required permission lists at developers.meta.com/horizon/resources/permissions-prohibited/ and .../permissions-review-required/.
  • Asset — Store images meet the dimension and content specs in Step 3, screenshots are real on-device captures (not editor views or mockups), text stays inside the inner 80% safe area of hero art, and the comfort rating matches the actual locomotion (Comfortable = stationary/teleport, Moderate = slow smooth locomotion with comfort options, Intense = fast movement).

Common store rejection reasons:

Rejection ReasonFix
Crash during reviewFix the crash. Run metavr adb logcat --buffer crash to investigate.
Frame rate below thresholdOptimize rendering. Profile with Perfetto or OVR Metrics Tool.
Missing store assetsEnsure all required images are uploaded at correct dimensions.
Disallowed permissionsRemove permissions not needed by the app (e.g., CALL_PHONE, SEND_SMS).
Text in unsafe zone of hero artKeep text within the inner 80% safe area of hero images.
App Not Responding (ANR)Move long network, IO, or asset work off the main thread. Reproduce with metavr adb logcat --buffer crash.
Comfort rating mismatchSet the comfort rating to match actual locomotion (Comfortable / Moderate / Intense).
Paid app entitlement check missingVerify entitlement within 10 seconds of launch (no internet required) before unlocking content.

Step 3: Asset Preparation

The Meta Horizon Store requires specific assets for the store listing.

Required Images
AssetDimensionsFormatNotes
App icon1024 x 1024 pxPNG or JPEGSquare, no rounded corners (system applies them)
Hero art (landscape)2560 x 1440 pxPNG or JPEGMain store listing image. Keep text in inner 80% safe area.
Screenshots2560 x 1440 pxPNG or JPEGMinimum 3 screenshots. Captured from the app, not mockups.
Small landscape (optional)1280 x 720 pxPNG or JPEGUsed in some store placements
Required Metadata
  • App name: 30 characters max
  • Short description: 150 characters max. Appears in store browse views.
  • Long description: 4000 characters max. Supports basic formatting.
  • Category: Choose from available store categories (Games, Entertainment, Productivity, etc.)
  • Content rating: Complete the IARC questionnaire for age rating
  • Privacy policy URL: Required for all apps
  • Support URL or email: Required
  • Trailer video: 30-60 seconds, 1920 x 1080 or 2560 x 1440, MP4/MOV
  • Localized descriptions: For each target language/region

Step 4: Dashboard Setup

  1. Navigate to the Developer Dashboard and sign in
  2. Click Create New App (or select existing app)
  3. Fill in all required metadata fields
  4. Set pricing (free or paid with MSRP)
  5. Complete the IARC content rating questionnaire
  6. Configure release channels if using staged rollout
Show full SKILL.md (537 more words)Show less

Step 5: Upload

Upload the signed release APK through the Developer Dashboard or with the metavr CLI. The CLI handles build distribution to a release channel; it does not create the app, complete the store listing, answer policy questionnaires, or submit the app for review.

bash
# Find the app and inspect its release channels.
metavr store dist apps --org <ORGANIZATION_ID>
metavr store dist channels --app-id <APP_ID>

# Uploads are drafts unless --publish is supplied.
metavr store dist upload \
  --app-id <APP_ID> \
  --channel ALPHA \
  --apk path/to/release.apk \
  --notes "What changed in this build"

Use ALPHA, BETA, or RC while validating a build. LIVE maps to the store release channel, but uploading there still does not submit the listing for review. Use --publish only when you intend to publish the uploaded build to the selected channel immediately.

The organization ID and app ID come from the Developer Dashboard. If any metavr store dist command exits non-zero or reports a server or GraphQL error, including an opaque Invalid parameter error, do not keep retrying IDs. Upload through the Dashboard instead. After upload, verify the build appears with the correct version code, signature, and architecture.

Step 6: Submit for Review

  1. In the Developer Dashboard, navigate to your app's Submission tab
  2. Verify all sections show green checkmarks
  3. Address any errors or warnings displayed at the top of the page
  4. Click Submit for Review

This step is Dashboard-only. Do not tell the developer that a successful CLI upload completes store submission.

Plan for a review period of approximately 1-2 weeks. Submit at least 2 weeks before your target launch date.

Step 7: Tracking

After submission:

  • Monitor the app's status in the Developer Dashboard
  • Respond promptly to any reviewer feedback or questions
  • If rejected, read the rejection reasons carefully, fix each issue, and resubmit

Post-approval:

  • Choose to release immediately or schedule a release date
  • Monitor crash reports and user feedback after launch
  • Plan a post-launch update for any issues discovered by early users

Gotchas

  • Version code must always increase -- You cannot upload a build with a version code equal to or lower than a previously uploaded build. Plan your versioning strategy before the first upload.
  • Signing key is permanent -- Once you upload a build with a specific signing key, all future builds must use the same key. Losing the keystore means you cannot update the app — you must create a new app entry.
  • Screenshot requirements are strict -- Screenshots must be captured from the actual app, not from marketing mockups or engine editor views. Reviewers compare screenshots to the actual app experience.
  • Review timeline varies -- While typical review takes 1-2 weeks, holidays, resubmissions, and high volume can extend this. Do not promise a launch date without buffer time.
  • Managed vs. self-service releases -- If Meta manages your release, you cannot set your own release date from the dashboard. Coordinate with your account manager.
  • 2D apps have different requirements -- If submitting a 2D Android app (not immersive VR), the store-readiness requirements are a subset. Do not assume all immersive-VR checks apply to 2D apps.
  • Asset safe zones -- Hero art and screenshots have a "safe zone" for text. Text that bleeds into the outer 20% may be cropped on different store placements, causing a rejection.
  • Privacy policy is mandatory -- Even free apps with no user accounts require a privacy policy URL. Submission will be blocked without one.

References

© meta-quest, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/hz-store-submit of meta-quest/agentic-tools.

  • SKILL.md
  • references/rejection-troubleshooting.md
  • references/submission-checklist.md

Open the folder on GitHubat commit 3a8553d

Compare with similar skills

Hz Store Submit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Hz Store Submit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hz Store Submit this skillmeta-quest/agentic-tools215—~3kAutomated safety check: PassApache-2.0
Sokol Netelix22/Sokol.NET154—~2.8kAutomated safety check: PassMIT
Unity Vrc World SDK 3niaka3dayo/agent-skills-vrc-udon332—~7.8kAutomated safety check: PassMIT
Ue Buildgetsentry/sentry-unreal173—~1kAutomated safety check: PassMIT
Scenario Godot Performance Exportscenario-labs/skills931—~5.1kAutomated safety check: NotesMIT
Godot Admob Troubleshootpoingstudios/godot-admob-plugin632—~812Automated safety check: PassMIT

Similar skills

  • Sokol Net

    elix22/Sokol.NET

    Sokol.NET framework development — use for ANY work in this repo: creating or debugging examples, building/running for desktop/Android/iOS/Web, writing or compiling shaders, adding a new C/C++…

    154 GitHub stars~2.8k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Unity Vrc World SDK 3

    niaka3dayo/agent-skills-vrc-udon

    VRChat World SDK 3 guide for scene and Inspector setup, component placement, optimization, and upload.

    332 GitHub stars~7.8k tokensUpdated 24 days ago
    Game DevelopmentAuto-check passed
  • Ue Build

    getsentry/sentry-unreal

    Official

    Build the SentryPlayground sample project for a target platform

    173 GitHub stars~1k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • A skill your agent uses when a Godot game stutters, drops frames, hitches when entering new areas, overheats a phone, or must ship: profiling and Performance monitors, CPU or GPU bound, draw calls…

    931 GitHub stars~5.1k tokensUpdated today
    Game DevelopmentAuto-check: notes
  • Godot Admob Troubleshoot

    poingstudios/godot-admob-plugin

    Provides instructions to diagnose ad loading errors, handle error codes, open the Ad Inspector, and resolve integration issues in GDScript and C.

    632 GitHub stars~812 tokensUpdated 8 days ago
    Game DevelopmentAuto-check passed
  • Godot Admob Mediation

    poingstudios/godot-admob-plugin

    Provides instructions to configure, integrate, and verify third-party mediation networks (AppLovin, Meta Audience Network, Unity Ads, etc.) in GDScript and C.

    632 GitHub stars~364 tokensUpdated 8 days ago
    Game DevelopmentAuto-check passed

More from meta-quest/agentic-tools

All 34 skills in this repo
  • Hz Android 2D Porting

    meta-quest/agentic-tools

    Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements.

    215 GitHub stars~2.1k tokensUpdated 14 days ago
    Auto-check passed
  • Hz API Upgrade

    meta-quest/agentic-tools

    Upgrades Meta VR apps to newer Horizon OS SDK versions — migration guides, deprecated API replacements, changelog.

    215 GitHub stars~1.8k tokensUpdated 14 days ago
    Auto-check passed
  • Hz Iwsdk Webxr

    meta-quest/agentic-tools

    Builds WebXR experiences for Meta VR and Horizon OS using the Immersive Web SDK (IWSDK) — ECS architecture, Three.js integration, spatial UI.

    215 GitHub stars~3k tokensUpdated 14 days ago
    Auto-check passed
  • Hz Metavrx Layout SDK

    meta-quest/agentic-tools

    Build multi-window Meta Horizon OS experiences with the MetaVrx Layout SDK in Jetpack Compose or React Native.

    215 GitHub stars~855 tokensUpdated 14 days ago
    Auto-check passed
  • Hz New Project Creation

    meta-quest/agentic-tools

    Scaffolds new Meta VR and Horizon OS projects after the build path is selected — Standard Android, Meta Spatial SDK, Unity, Unreal, or WebXR.

    215 GitHub stars~2.3k tokensUpdated 14 days ago
    Auto-check passed
  • Hz Perfetto Debug

    meta-quest/agentic-tools

    Analyzes Meta VR and Horizon OS VR performance using Perfetto traces — frame timing, CPU/GPU bottlenecks, render pass analysis.

    215 GitHub stars~2.8k tokensUpdated 14 days ago
    Auto-check passed

Works with

Questions about Hz Store Submit

What does Hz Store Submit do?

Guides end-to-end Meta VR and Horizon OS app submission to the Meta Horizon Store — build validation, store-readiness checks, asset preparation, upload, and submission tracking. Hz Store Submit is an agent skill from meta-quest/agentic-tools. Guides end-to-end Meta VR and Horizon OS app submission to the Meta Horizon Store — build validation, store-readiness checks, asset preparation, upload, and submission tracking.

When should I use Hz Store Submit?

Hz Store Submit fits situations like: preparing a Meta VR app for store publishing.

How do I install Hz Store Submit in Claude Code?

Run `npx skills add meta-quest/agentic-tools --skill hz-store-submit -a claude-code`. Or copy the skill folder (skills/hz-store-submit in meta-quest/agentic-tools) into .claude/skills/hz-store-submit in your project. Claude Code loads it when a task matches its description.

How do I install Hz Store Submit in Codex?

Run `npx skills add meta-quest/agentic-tools --skill hz-store-submit -a codex`. Or copy the skill folder (skills/hz-store-submit in meta-quest/agentic-tools) into .agents/skills/hz-store-submit in your project. Codex loads it when a task matches its description.

Can I use Hz Store Submit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add meta-quest/agentic-tools --skill hz-store-submit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hz-store-submit, .gemini/skills/hz-store-submit, .github/skills/hz-store-submit and .opencode/skills/hz-store-submit in your project.

What does Hz Store Submit need to run?

SKILL.md names no scripts, command-line tools or credentials: Hz Store Submit is instructions for the agent only. Its frontmatter pre-approves these tools: Bash(metavr:*), Bash(hzdb:*).

Does Hz Store Submit access the network?

SKILL.md names 1 domain. As links in the text: developer.meta.com. This is read from the text; nothing was executed.

Is Hz Store Submit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Hz Store Submit use?

Hz Store Submit is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hz Store Submit use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.

What are the alternatives to Hz Store Submit?

Skills that share tags, products or a category with Hz Store Submit: Sokol Net (elix22/Sokol.NET, 154 stars), Unity Vrc World SDK 3 (niaka3dayo/agent-skills-vrc-udon, 332 stars), Ue Build (getsentry/sentry-unreal, 173 stars) and Scenario Godot Performance Export (scenario-labs/skills, 931 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hz Store Submit?

meta-quest (a GitHub organization) maintains it in meta-quest/agentic-tools, which has 215 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on September 24, 2026.

Source: meta-quest/agentic-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.