Release
vaayne/mori
Release workflow for Mori macOS workspace terminal and MoriRemote iOS app.
Prepare and publish an already-built KeeForge iOS or macOS version through the App Store Connect API using an API key.
$ npx skills add KeeForge/KeeForge --skill publish-app-store-version -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install KeeForge/KeeForge publish-app-store-version --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/KeeForge/KeeForge.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/publish-app-store-version .claude/skills/publish-app-store-version && rm -rf skills-srcUse ~/.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/
Install the "publish-app-store-version" agent skill from https://github.com/KeeForge/KeeForge/tree/main/.agents/skills/publish-app-store-version into .claude/skills/publish-app-store-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish-app-store-version", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/KeeForge/KeeForge/tree/main/.agents/skills/publish-app-store-versionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add KeeForge/KeeForge --skill publish-app-store-version -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install KeeForge/KeeForge publish-app-store-version --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/KeeForge/KeeForge.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/publish-app-store-version .agents/skills/publish-app-store-version && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "publish-app-store-version" agent skill from https://github.com/KeeForge/KeeForge/tree/main/.agents/skills/publish-app-store-version into .agents/skills/publish-app-store-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish-app-store-version", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add KeeForge/KeeForge --skill publish-app-store-version -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install KeeForge/KeeForge publish-app-store-version --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/KeeForge/KeeForge.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/publish-app-store-version .cursor/skills/publish-app-store-version && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "publish-app-store-version" agent skill from https://github.com/KeeForge/KeeForge/tree/main/.agents/skills/publish-app-store-version into .cursor/skills/publish-app-store-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish-app-store-version", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/KeeForge/KeeForge.git --path .agents/skills/publish-app-store-version--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add KeeForge/KeeForge --skill publish-app-store-version -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install KeeForge/KeeForge publish-app-store-version --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/KeeForge/KeeForge.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/publish-app-store-version .gemini/skills/publish-app-store-version && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "publish-app-store-version" agent skill from https://github.com/KeeForge/KeeForge/tree/main/.agents/skills/publish-app-store-version into .gemini/skills/publish-app-store-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish-app-store-version", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install KeeForge/KeeForge publish-app-store-versionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add KeeForge/KeeForge --skill publish-app-store-version -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/KeeForge/KeeForge.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/publish-app-store-version .github/skills/publish-app-store-version && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "publish-app-store-version" agent skill from https://github.com/KeeForge/KeeForge/tree/main/.agents/skills/publish-app-store-version into .github/skills/publish-app-store-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish-app-store-version", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add KeeForge/KeeForge --skill publish-app-store-version -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install KeeForge/KeeForge publish-app-store-version --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/KeeForge/KeeForge.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/publish-app-store-version .opencode/skills/publish-app-store-version && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "publish-app-store-version" agent skill from https://github.com/KeeForge/KeeForge/tree/main/.agents/skills/publish-app-store-version into .opencode/skills/publish-app-store-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "publish-app-store-version", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
publish-app-store-versionPrepare and publish an already-built KeeForge iOS or macOS version through the App Store Connect API using an API key.
Publish App Store Version is an agent skill from KeeForge/KeeForge. Prepare and publish an already-built KeeForge iOS or macOS version through the App Store Connect API using an API key. Use for uploaded-build selection, localized listing and release notes, reviewer attachments, release settings, and App Review staging or submission. Do not use for version bumps, release candidates, tags, compatibility gates, or archive creation; use prepare-release or respin-release for candidates, and ship-release for coordinated production publication.
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `agents/openai.yaml`, `mac-listing-metadata.md` and `references/api-operations.md`).
It sits in Mobile, covering App store release, Customer feedback analysis and Changelog and release notes. It works with App Store Connect, iOS and macOS. The repository describes itself as: KeePass-compatible password manager for iPhone, iPad, and Mac. The licence is GPL-3.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b04a461. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.appstoreconnect.apple.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
APP_STORE_CONNECT_KEY_IDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Publish App Store Version loads about 3.5k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 126 tokens; SKILL.md has 1,829 words of instructions outside code blocks.
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.
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.
The full file from KeeForge/KeeForge at commit b04a461, republished under its GPL-3.0 licence (© KeeForge). 1,829 words, ~3,503 tokens.
.claude/skills/publish-app-store-version/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Use the documented App Store Connect REST API at https://api.appstoreconnect.apple.com
with API-key authentication. No signed-in browser, session cookies, or private website APIs are
required. If an operation is unavailable through the public API or the key lacks permission,
report the specific blocker. Do not silently switch to browser automation or broaden key access.
Operate only on the requested platforms and fields. Prepare localization, attachment, and review-draft writes within the authorized scope. Show the English release-note draft before saving public copy unless already approved. Retain the version-creation and final-submission confirmation boundaries below.
Staging ends before final submission. PATCH /v1/reviewSubmissions/{id} with
submitted: true sends the contents to Apple; it is not a validation or staging request. Obtain
a separate explicit action-time confirmation immediately before each platform's final submission,
naming its exact version and build. Approval for iOS does not imply approval for macOS. A request
to prepare everything before submission authorizes neither submission nor production release.
Never use the legacy appStoreVersionSubmissions POST as a way to stage a draft.
Beta App Review, external TestFlight distribution, production submission, production release, and legal declarations are separate actions. Perform them only within the user's explicit scope. Do not add a platform, change purchase configuration, or change availability as a side effect of publishing an existing platform.
Read applicable private local guidance for credential discovery. Otherwise use configured environment variables or a user-specified private environment file:
APP_STORE_CONNECT_KEY_IDAPP_STORE_CONNECT_ISSUER_ID for a team API keyAPP_STORE_CONNECT_KEY_PATH for the private .p8 keyThe public skill must contain no actual key or issuer IDs, credential filenames, personal filesystem paths, reviewer contact details, or tokens. Keep machine-specific discovery paths in private, Git-excluded local guidance. Do not copy the credentials into this skill, scratch artifacts, release manifests, issues, commits, or terminal output. Parse an environment file as data; do not execute its contents. Resolve configured home-relative paths in process.
Generate a short-lived ES256 JWT using an established library such as PyJWT with cryptography.
For a team key use iss, iat, exp, and aud: appstoreconnect-v1; header fields are
kid, typ: JWT, and alg: ES256. A two-minute lifetime suits a preflight; keep other tokens
at or below 20 minutes and renew during longer work. Individual keys use sub: user instead
of iss; confirm key type rather than guessing from a missing issuer.
Keep the key and JWT in memory. Send the bearer token only to the API origin above. Do not put it in process arguments, shell traces, HTTP debug output, or a printed request object. Disable automatic redirects for authenticated requests. Upload URLs have their own authorization and must not receive the ASC bearer token.
Start with a read-only app lookup to verify authentication and app identity. A successful GET
proves read access only, not permission to submit or release. For 401, check token expiry,
clock, and configured key type; for 403, report the missing permission without changing roles.
See API operations for endpoints, JSON:API request shapes, upload handling, and current Apple documentation. Verify the current documented schema before using a field not covered there.
KeeForge has one app record with separate IOS and MAC_OS versions, builds, localizations,
screenshots, and review submissions. Resolve the app from the handoff or the repository's main
bundle identifier, then confirm its identity. Do not select an app by display name alone.
The prepare-release and respin-release skills prepare the candidate; after soak,
ship-release hands off the accepted release manifest. Require that handoff at
scratch/release-manifests/{version}-b{repoBuild}.json. Match the marketing version, repo build,
RC tag/SHA, iosTestFlightBuild, macTestFlightBuild, and platform build IDs. Both builds must
come from the accepted RC; directCFBundleVersion must equal repoBuild. Verify the recorded
external TestFlight soak and direct-channel evidence. Internal-only testing and Xcode Cloud
upload success do not establish an accepted external soak.
The direct-download Mac artifact is outside this skill: verify its handoff evidence but never upload, notarize, rebuild, or release it here. Select the existing accepted App Store builds; never substitute the newest build, trigger CI, bump versions, or make an archive. If a required manifest mapping or build is missing, stop and report it. An existing upload may still be processing; bounded polling is allowed, but do not wait for an unrequested new build.
For a narrowly requested listing correction or read-only investigation, inspect the specified record without requiring a release manifest. That scope does not authorize changing its build, staging a different candidate, or submitting it.
Other inputs:
CHANGELOG.md section, never Unreleased.test.kdbx.zip, with password testpassword123; resolve its local source from
private guidance or user input. Never substitute a personal database.Read the requested version, its attached build, localizations, reviewer details/attachments, screenshot sets, release settings, availability, and existing review submissions/items. Follow pagination, including nested relationship lists. Record only the non-secret IDs and state needed for the task; summarize reviewer contact completeness without printing personal contact values.
Match the build's preReleaseVersion.version and preReleaseVersion.platform as well as its ID
and build.version (the build number). API processingState: VALID means processing succeeded;
it is distinct from an asset's COMPLETE state. Reject failed/invalid builds and
buildAudienceType: INTERNAL_ONLY for production. Inspect beta eligibility and the accepted
soak evidence rather than interpreting processing success as test distribution or approval.
If a version is already submitted, in review, or released, report its actual state and use only operations valid for the requested correction. Do not cancel, withdraw, recreate, or resubmit it to force it through the preparation path.
Reuse the matching platform/version record. If absent, confirm creation immediately before POSTing an
appStoreVersions resource related to the app, with the exact platform, versionString, and
intended releaseType. Coordinate KeeForge releases with MANUAL unless the owner explicitly
chooses otherwise. Check for an existing record again after an ambiguous POST outcome.
PATCH the version's build relationship with the exact manifest build ID. GET that relationship
and build afterward and recheck the full platform/version/build mapping. If Apple rejects the
build, report the error instead of choosing another candidate.
Read the selected build's usesNonExemptEncryption and any associated encryption declaration.
Both app plists declare ITSAppUsesNonExemptEncryption=false, but that source declaration is
not proof that the selected upload has resolved compliance. Verify both platforms separately.
Do not automatically PATCH a missing declaration to false. New encryption answers, documents,
or France-related declarations require the exact current question/field choices and explicit
owner/legal confirmation at action time. The accepted prior record is context, not authorization
to reuse an answer. Preserve France availability unless the owner explicitly decides otherwise.
If a required legal workflow is unsupported by the public API, identify the manual action needed.
Draft concise user-facing release notes from the versioned changelog, mentioning minimum-OS
changes. Save approved whatsNew through appStoreVersionLocalizations; translate the same
meaning into every live locale. Keep KeeForge, KeePass, KDBX, AutoFill, WebDAV, TOTP, passkey,
and iOS recognizable. Read back each field after saving and check documented field limits.
Do not change descriptions, keywords, URLs, or other listing fields unless in scope.
Verify the version's screenshot sets and processed assets, including inherited galleries. iOS
screenshots do not satisfy macOS. When new Mac screenshots are requested, use
KeeForgeMacUITests/MacScreenshotAuditUITests exports and
ci_scripts/make_appstore_screenshots.py --platform mac --input-dir <export> for the seven
2880×1800 images; read the test folder's guidance before capturing. Upload only the appropriate
platform assets using the reservation/upload/commit protocol in the API reference.
Read appStoreReviewDetail: preserve the contact fields, confirm sign-in is unnecessary for
KeeForge, and keep notes explaining how to open the attached fixture with its password. Mac
notes should describe File > Open Database and System Settings > General > AutoFill & Passwords;
iOS notes should describe its own import and AutoFill flow.
List review attachments. Reuse an existing test.kdbx.zip only after confirming successful asset
processing. If absent, resolve and verify the disposable fixture, reserve an
appStoreReviewAttachments resource, upload its exact byte ranges, commit the checksum, and
poll until assetDeliveryState.state: COMPLETE. A filename or successful reservation alone
is not evidence of an uploaded attachment. If the fixture is unavailable, ask for its path.
For coordinated releases, verify both version records use releaseType: MANUAL. Preserve any
existing phased-release configuration; create or change one only when explicitly requested.
Keep existing ratings and do not send a rating-reset operation. Preserve availability, pricing,
privacy, age ratings, and purchase configuration. If a setting cannot be verified through the
current public API, report it as unverified rather than claiming the UI-equivalent check passed.
For each platform, reuse an appropriate unsubmitted reviewSubmissions draft, or create one
related to the app with the explicit platform. List its items before editing. Do not alter a
draft containing unrelated versions/items or combine the two platforms into one submission.
Add the exact version via reviewSubmissionItems only if it is not already present. Resolve
concrete validation errors within scope and read back the submission, item, version, and build.
The staging target is a READY_FOR_REVIEW submission with the exact version's item also
READY_FOR_REVIEW and no submitted date. Report the version's own state separately; it is not
interchangeable with the submission or item state. These checks cannot guarantee Apple will
accept final submission; never submit just to discover additional validation errors.
Stop here for a prepare-only request. Report each platform's version ID, build ID/number,
submission ID/state, item state, release setting, and any remaining blocker. State explicitly
that no submitted: true request was sent.
Immediately before an authorized submission, re-fetch the draft and its items and verify the
platform/version/build and release settings still match the authorization. PATCH that submission
with submitted: true once, then GET its resulting state. On a timeout or ambiguous error,
reconcile the live state before retrying. Do not assume a transport error means nothing happened.
Report each platform's resulting state independently. Stop after submission; a manual production
release uses appStoreVersionReleaseRequests and requires separate explicit release authorization
plus the ship-release skill's gates. This skill must not release a held version as a
side effect of submitting it.
For each requested platform report the exact candidate, saved locales, screenshot and fixture processing, compliance status, release setting, and review state. Store only sanitized evidence in the release manifest: record IDs, build mapping, states, and timestamps. Exclude credentials, JWTs, signed upload URLs, private source paths, reviewer contacts, and complete API response dumps. Do not mark a blocked or partially staged platform complete because the other platform succeeded.
© KeeForge, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .agents/skills/publish-app-store-version of KeeForge/KeeForge.
Open the folder on GitHubat commit b04a461
Publish App Store Version 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Publish App Store Version this skillKeeForge/KeeForge | 114 | — | ~3.5k | Automated safety check: Pass | GPL-3.0 | |
| Releasevaayne/mori | 303 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Testflightkmworks/kmreader | 111 | — | ~403 | Automated safety check: Pass | MIT | |
| Appstore Releasekmworks/kmreader | 111 | — | ~2.5k | Automated safety check: Pass | MIT | |
| App Store Preflight Skillstruongduy2611/app-store-preflight-skills | 1.4k | — | ~1.4k | Automated safety check: Pass | MIT | |
| OdevioOdevio/Odevio-CLI | 423 | — | ~7.6k | Automated safety check: Pass | MIT |
vaayne/mori
Release workflow for Mori macOS workspace terminal and MoriRemote iOS app.
kmworks/kmreader
Distribute KMReader builds to TestFlight groups via the asc CLI.
kmworks/kmreader
Coordinate the KMReader App Store release workflow. An agent skill from kmworks/kmreader.
truongduy2611/app-store-preflight-skills
Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission.
Odevio/Odevio-CLI
Take a Flutter project to an iPhone or the App Store with Odevio - build, sign and publish iOS apps from Windows, Linux or macOS with no Mac and no Xcode.
rorkai/app-store-connect-cli-skills
Build, archive, generate export options, export, upload, and manage Xcode version/build numbers with the current asc xcode helpers.
KeeForge/KeeForge
Ship an accepted, soaked KeeForge candidate across iOS, Mac App Store, and direct Mac.
KeeForge/KeeForge
Assess KeeForge test quality, redundant coverage, and test-support complexity; audit a selected subsystem or apply an authoring checklist while changing tests.
KeeForge/KeeForge
Create, edit, comment on, close, reopen, classify, or change project fields for issues in KeeForge/KeeForge.
KeeForge/KeeForge
Statically review KeeForge changes since a shipped release for behavior risks, documentation inconsistencies, i18n gaps, and missing test coverage.
KeeForge/KeeForge
Prepare the first KeeForge candidate for a new marketing version, including minor/major releases and patches or hotfixes to shipped versions.
KeeForge/KeeForge
Replace an unshipped KeeForge candidate after a fix on an existing release branch.
Works with
Categories
Prepare and publish an already-built KeeForge iOS or macOS version through the App Store Connect API using an API key. Publish App Store Version is an agent skill from KeeForge/KeeForge. Prepare and publish an already-built KeeForge iOS or macOS version through the App Store Connect API using an API key.
Publish App Store Version fits situations like: uploaded-build selection; localized listing and release notes; reviewer attachments; release settings.
Run `npx skills add KeeForge/KeeForge --skill publish-app-store-version -a claude-code`. Or copy the skill folder (.agents/skills/publish-app-store-version in KeeForge/KeeForge) into .claude/skills/publish-app-store-version in your project. Claude Code loads it when a task matches its description.
Run `npx skills add KeeForge/KeeForge --skill publish-app-store-version -a codex`. Or copy the skill folder (.agents/skills/publish-app-store-version in KeeForge/KeeForge) into .agents/skills/publish-app-store-version in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add KeeForge/KeeForge --skill publish-app-store-version -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/publish-app-store-version, .gemini/skills/publish-app-store-version, .github/skills/publish-app-store-version and .opencode/skills/publish-app-store-version in your project.
Going by SKILL.md and its folder, Publish App Store Version needs credentials named APP_STORE_CONNECT_KEY_ID.
SKILL.md names 1 domain. In commands or code: api.appstoreconnect.apple.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
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.
Publish App Store Version is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k 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 2.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Publish App Store Version: Release (vaayne/mori, 303 stars), Testflight (kmworks/kmreader, 111 stars), Appstore Release (kmworks/kmreader, 111 stars) and App Store Preflight Skills (truongduy2611/app-store-preflight-skills, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
KeeForge (a GitHub organization) maintains it in KeeForge/KeeForge, which has 114 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 8, 2026.
Source: KeeForge/KeeForge on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.