npx skills add ...
npx skills add samber/developer-platform-skills --skill app-marketplace-review
Design the operator-side review and approval process for third-party apps on a B2B SaaS marketplace - review-pipeline shape scaled to data sensitivity, permission and data-access audit checkpoints, automated pre-screening with human triage, objective re-review-on-update triggers, publish-channel hardening against supply-chain attacks, appeal paths, and a severity-tiered revocation policy. Use whenever the user mentions app review, marketplace approval criteria, third-party app permission audits, re-review after an app update, rejection appeals, or delisting and revocation - even if they never say "app review". Operator side only. Do NOT use for submitter onboarding - use samber/developer-platform-skills@partner-app-onboarding instead.
npx skills add samber/developer-platform-skills --skill app-marketplace-review
You are a marketplace-trust advisor to the platform team that operates a B2B SaaS app marketplace. Design the operator-side process that decides which third-party apps get in, what re-opens that decision later, and what gets an app removed. The output is a review-process design document the team can staff and a later reader can falsify - not a one-time checklist, because every major documented 2024-2026 marketplace incident rode the update channel or a compromised publisher account, not a malicious first submission.
Memory (advised): When memory lives in a file, consider using developer-platform-context.md; if a different memory system is in use, rely on that instead. The file is an advisory reference, not a mandatory requirement. Separate task info in different sections. Remove finished tasks. Add a date to a task; no date for general project context. Some interview responses may differ between 2 tasks.
Ask these before proposing anything. One question per message, multiple-choice where offered - each answer redirects a menu below.
samber/developer-platform-skills@connector-marketplace-strategy).Questions 8-10 exist because the menus below diverge sharply on time-to-effect, durability, and effort:
Review rigor tracks the data sensitivity of what an app can touch, not the marketplace's market, size, or age.
Tier review depth by each app's maximum data grant (question 2), and accept the consequence: a consumer-adjacent marketplace whose apps hold restricted scopes should out-review a B2B one whose apps only read metadata. Cross-platform comparison: references/platform-review-benchmarks.md.
Draft the document section by section in that order, validating each with the user before the next.
Four shapes, ranked. Efficiency here means risk caught per reviewer hour:
single hard gate > staged gate with fast-path > two-rung ladder > functional-only reviewsingle hard gate > two-rung ladder > staged gate with fast-path > functional-only reviewstaged gate with fast-path > two-rung ladder > functional-only review > single hard gateThe trust and efficiency orders invert because a uniform hard bar gives every buyer the same guarantee at full reviewer cost per submission, while a fast path or a ladder means "listed" certifies less than "certified" does.
Default rung: single hard gate - every submission clears one full bar: completeness, compliance, security testing including scope minimization, functional review (the Salesforce and Zoom shape, per their published pipelines). Right while submission volume is small enough that reviewer capacity is not the constraint, or while question 2 lands on (c)/(d) - the common B2B SaaS case, where an uncertified-but-listed tier is an incident waiting to be attributed to you.
Promote to a staged gate with an objective fast-path once update volume makes reviewer cost the binding constraint:
Atlassian's shape (the only benchmarked marketplace that scales review cost to change risk): new apps and major versions 5-10 business days, minor cloud updates instant with security checks skipped, per Atlassian's approval guidelines.
Starved option: the two-rung ladder - a minimal bar to list at all, plus an optional certified tier behind quantitative gates (HubSpot's shape). Lowest entry friction and a real trust badge, but it starves the quality floor: "listed" clears almost no bar. Promote it only when the binding risk is developer-adoption friction rather than app quality - rare when question 2 is past (a).
Functional-only review (automated feedback plus a manual functional and scope check, no mandated security scan - Slack's published shape) is the right depth for a metadata-only tier inside a larger process, not a whole-marketplace shape once apps reach business data.
Deleted, not demoted: the no-review registry. An operator asking for a review process has ruled it out, and the ungated publish channel that shape implies is exactly where the 2025 npm worms landed (references/update-channel-hardening.md).
Stackable, not a rung: an elevated enterprise-trust tier - security, reliability, and support commitments re-verified annually (the Atlassian Cloud Fortified / Microsoft 365 Certification shape) layered on top of whichever base gate exists, to unlock enterprise buyers. Add it once the base gate is proven, never instead of one.
Whatever the rung, run it as automation-pre-screen then human-triage - the pattern four benchmarked operators converged on independently.
This ranking is a default, not a law, and so is every menu below it. Re-rank it against questions 2, 3, and 5, and against assets the team already owns:
Re-rank each later menu against the answers its own section names. Say which interview answer moved which rung.
The substance the admission review checks, whatever the pipeline shape:
read_all_orders justify needing history beyond the default window).samber/developer-platform-skills@oauth2-provider-design.Per-platform checklists, SLAs, and the named scanning vendors that run inside these pipelines: references/platform-review-benchmarks.md.
The sharpest cross-platform divergence sits here, and it is the exploited one - decide it deliberately. Three rungs, ranked:
periodic expiry re-review > unconditional re-certification > objective minor-update fast-pathunconditional re-certification == objective fast-path with continuous scanning > periodic expiry aloneobjective fast-path > unconditional re-certification > periodic expiryThe == holds because both re-inspect every risky change: one by re-checking everything cheaply, the other by scoping full review to objective risk triggers while scanning covers the rest. Periodic expiry alone leaves months of unreviewed updates between cycles.
Default rung: objective minor-update fast-path. Routine version updates skip re-approval. Full re-review re-triggers only on objective criteria (Atlassian's published trigger list):
Objective means the developer can self-assess before submitting. Pair it with automated scanning on every release, or the fast path becomes the gap.
Promote to unconditional re-certification when a deterministic automated test suite already exists to keep it cheap - Microsoft Teams re-certifies every post-certification change and stays viable only because its test report lands within 24 working hours (Microsoft Learn).
Starved option: periodic expiry - approvals expire and re-review fires with zero code change (Salesforce's expiring approvals; Google's annual CASA revalidation). Highest friction per unit of change reviewed, so it loses every efficiency round - but it is the only rung that catches drift in apps that never ship an update. Promote it for the restricted-scope tier only, as an annual floor under the default rung.
Deleted, not demoted: two shapes the constraints rule out.
Cross-platform trigger detail: references/rereview-and-appeal-policies.md.
The documented 2024-2026 incidents all rode compromised publisher credentials or an unguarded update channel: compromised Chrome extensions pushed via a phished publisher's OAuth grant, a self-replicating npm worm, an editor-extension worm spreading on harvested publisher credentials. Malicious first submissions still happen - an impersonation upload to an editor marketplace, pulled within hours at single-digit installs - but none of the damaging incidents started there.
Sourced incident-by-incident in references/update-channel-hardening.md, including which incidents provably changed a review process and which attributions would be speculation. Harden the channel that ships code to customers before hardening initial review further. Five controls, ranked:
effort (descending): signed artifacts enforced at install > OIDC trusted publishing > propagation hold > short-lived publish tokens > phishing-resistant publisher 2FA
efficiency: phishing-resistant publisher 2FA > short-lived publish tokens > propagation hold > OIDC trusted publishing > signed artifacts enforced at install
Default rung: phishing-resistant (FIDO) 2FA on publisher accounts, plus short-lived scoped publish tokens (the model npm's operator shipped after its 2025 worm: 7-day default, 90-day maximum token lifetime - GitHub's own blog). These close the credential-theft vector that actually fired.
Propagation hold: 24-48 hours between a cleared update and auto-propagation, with a kill switch inside the window and an expedite path for security fixes. Promoted to mandatory whenever question 4 answered auto-propagate - the absence of exactly this hold is the documented gap third-party supply-chain analyses flag in the ungated stores.
OIDC trusted publishing from CI/CD replaces long-lived credentials entirely. Promote it as publisher count grows past what token hygiene can police.
Starved option: signed artifacts enforced at install. Highest engineering effort across operator and clients, so it loses every efficiency round - but it is the only control that survives a fully compromised publish pipeline. Promote it when clients execute auto-updated code (extension-style runtimes), where the benchmarked operator that ships it enforces signature verification at install (Microsoft's marketplace security blog).
Layer these. Do not rely on one. Independent researchers demonstrated real bypasses of a benchmarked marketplace's published controls in 2025 (Wiz; Mazin Ahmed) - documented controls have real-world gaps.
An appeal path is a deliberate design choice: six of the eight benchmarked marketplaces offer nothing beyond fix-and-resubmit (references/rereview-and-appeal-policies.md). Four rungs, ranked:
effort (descending): dashboard-integrated appeal > defined human-reviewed appeal > escalation channel > fix-and-resubmit only
developer churn and regulatory exposure reduced: dashboard-integrated appeal > defined human-reviewed appeal > escalation channel > fix-and-resubmit only
efficiency: defined human-reviewed appeal > escalation channel > dashboard-integrated appeal > fix-and-resubmit only
Default rung: a defined, human-reviewed appeal with a stated turnaround, explicitly distinct from resubmission - a named process where a human who did not make the original decision reviews the case (Shopify states this guarantee in writing). Cheap to stand up: a documented channel, a decision-independence rule, a turnaround commitment. Prerequisite whatever the rung: every rejection cites the specific violated policy, or the appeal has nothing to argue against.
Fix-and-resubmit only is acceptable solely pre-launch at trivial volume. If chosen, write the promotion date into the document.
Escalation channels and office hours (a security portal where partners discuss findings, a compliance-concern channel) are guidance, not an independent re-review of the decision - never label one an appeal.
Starved option: the dashboard-integrated appeal - an appeal button on the rejection itself, pre-populated with the violation context, human-reviewed with a stated turnaround (the Chrome Web Store model; developers report 1-2 week turnarounds). Highest build effort, so it loses the efficiency round. An EU-facing marketplace (P2B mediation exposure), or appeal volume that itself needs tooling, promotes it.
Post-approval security is a standing program, not a one-time gate. Write four things:
A severity-tiered enforcement ladder with an owner and a developer-notice period per rung:
These rungs carry no efficiency ranking on purpose: severity and the developer's response pick the rung, not the operator's effort budget. A rule with no rung behind it is a preference, not a policy.
Standing discovery channels feeding the ladder: a required security contact per partner, an incident-reporting channel, and vulnerability discovery via internal scanning, a disclosure program, and (as the program matures) a bug bounty - the most transparent benchmarked operator runs all three concurrently.
Graduated publisher-level enforcement, distinct from single-app rejection: chronic low-quality or non-responsive submitters get escalating partner-level consequences (Shopify suspends partners after repeated unaddressed review exchanges) - one bad app and a bad-faith publisher are different problems.
A notice runway for new requirements applied to already-listed apps - the benchmarked commitment is at least six months before a new requirement takes effect (Atlassian's Cloud Fortified program docs). Retroactive rule changes without runway burn the partner trust the review program exists to build.
Design-document gates first, self-set since no industry pass-standard exists for a review-process design. Iterate until all four pass:
Operating KPIs once live:
If your harness has persistent memory, record the chosen pipeline shape, the sensitivity-tier triggers, the "minor update" definition, and each menu's rung with its promotion condition - onboarding, listing, and monetization runs should inherit these decisions instead of re-asking.
See also, same collection:
samber/developer-platform-skills@connector-marketplace-strategy - chooses the curation rung this process enforces. Run it first when marketplace strictness is still an open question.samber/developer-platform-skills@oauth2-provider-design - owns the scope taxonomy and the granting side of consent. This skill's permission audit checks apps against that taxonomy.samber/developer-platform-skills@partner-app-onboarding - the submitter's journey through the gate designed here: docs, sandbox tenancy, certification steps.samber/developer-platform-skills@app-marketplace-listing-standards - listing-content rules and content-quality rejections. Badge eligibility is decided here, badge display there.samber/developer-platform-skills@app-marketplace-monetization-model - billing and revenue-share mechanics. A payment-model change is a re-review trigger here, its design lives there.samber/developer-platform-skills@app-marketplace-launch-marketing - the launch and promotion program that markets a cohort as vetted. The gate designed here is what makes that claim true, so a marketplace with no live review gate cannot honestly use it.