npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@deepwhale-cn/dsh-cn-appstore-preflight

v0.1.0

Published

国内应用市场上架预检:App 备案、隐私政策可达性、权限使用场景说明、账号注销入口、未成年人保护、第三方 SDK 清单 —— 从上架材料角度做一次体检,并生成材料清单骨架。

Readme

@deepwhale-cn/dsh-cn-appstore-preflight

国内应用市场上架预检 —— 给 DeepSeek Harness 用的 skill 插件。

在提交应用市场之前做一次体检:从上架材料的角度,把会被驳回的地方先找出来。

它查什么

| 项 | 具体是什么 | |---|---| | App 备案 | 备案号是否在 App 内可查;网站 ICP 备案 ≠ App 备案(最常见的一处填错) | | 隐私政策 | 链接是否可达、能否从 App 内打开 | | 权限 | 清单是否最小必要;有没有准备「使用场景说明」 | | 账号注销 | 是否有用户可自助完成的入口(多数市场不接受发邮件申请) | | 未成年人保护 | 是否有相应机制(按产品形态判断是否适用) | | 上架材料 | 包名/版本/targetSdk/软著/第三方 SDK 清单 —— 生成骨架,照着往后台填 |

它给的是骨架,不是某家市场的官方清单

各应用市场(华为 / 小米 / OPPO / vivo / 应用宝 / 鸿蒙)的要求不同且会变。 本技能与它带的脚本都明确写着:以目标市场的官方最新公告为准。

编一条"看起来很像"的规定比不写更糟糕 —— 用户会照着它准备材料,然后在提交时被打回。

与相邻技能的分工

这四个包是刻意分开的,本技能不重复别人的活:

| 包 | 管什么 | | --- | --- | | dsh-cn-appstore-preflight | 材料齐不齐、上架能不能过 | | dsh-cn-pipl-check | 隐私声明与实现是否一致 | | dsh-cn-compliance | 对外文案红线 | | dsh-cn-ai-labeling | AI 生成内容的标识 | | dsh-release-selfcheck | 发布产物与流程 |

安装

dsh plugin --profile <profile> add @deepwhale-cn/dsh-cn-appstore-preflight

然后重启 dsh。技能会在需要时自动可用。

用法

# 脚本路径由插件注册时注入到技能正文里,或到安装目录找 skill/scan.sh
scan.sh --dir /path/to/app

输出分两段:取证(包名、备案号、隐私政策入口、权限、注销入口、未成年人) + 上架材料清单骨架(可直接照着填市场后台)。

典型驳回原因(脚本会帮你先看一遍)

  1. 隐私政策不可达,或与实现不一致
  2. 无账号注销入口
  3. 权限与功能无关,或一启动就申请
  4. App 备案缺失,或填了网站的 ICP 备案
  5. 截图/描述文案踩红线
  6. 第三方 SDK 未在材料里披露
  7. 版本号未递增或与后台填写不一致

本技能是一份准备清单,不构成法律意见。

许可

MIT