Frappe Ops Deployment
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when deploying Frappe/ERPNext to production, configuring Nginx or Supervisor, setting up Docker, enabling SSL, or hardening security.
构建并发布 NullPrivate 镜像到阿里云容器镜像服务,更新 k3s 工作负载并完成 rollout、镜像 digest、Pod、Service、Gateway/Ingress、HTTPS 与 DNS/DoH 验收。Use when: 推送 dev 镜像、发布 NullPrivate、更新 public3 Pod、部署 adguardprivate、回滚 public3、检查…
$ npx skills add NullPrivate/NullPrivate --skill nullprivate-deploy -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install NullPrivate/NullPrivate nullprivate-deploy --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/NullPrivate/NullPrivate.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/nullprivate-deploy .claude/skills/nullprivate-deploy && 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 "nullprivate-deploy" agent skill from https://github.com/NullPrivate/NullPrivate/tree/master/.github/skills/nullprivate-deploy into .claude/skills/nullprivate-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nullprivate-deploy", 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/NullPrivate/NullPrivate/tree/master/.github/skills/nullprivate-deployType 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 NullPrivate/NullPrivate --skill nullprivate-deploy -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install NullPrivate/NullPrivate nullprivate-deploy --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NullPrivate/NullPrivate.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/nullprivate-deploy .agents/skills/nullprivate-deploy && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nullprivate-deploy" agent skill from https://github.com/NullPrivate/NullPrivate/tree/master/.github/skills/nullprivate-deploy into .agents/skills/nullprivate-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nullprivate-deploy", 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 NullPrivate/NullPrivate --skill nullprivate-deploy -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install NullPrivate/NullPrivate nullprivate-deploy --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NullPrivate/NullPrivate.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/nullprivate-deploy .cursor/skills/nullprivate-deploy && 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 "nullprivate-deploy" agent skill from https://github.com/NullPrivate/NullPrivate/tree/master/.github/skills/nullprivate-deploy into .cursor/skills/nullprivate-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nullprivate-deploy", 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/NullPrivate/NullPrivate.git --path .github/skills/nullprivate-deploy--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 NullPrivate/NullPrivate --skill nullprivate-deploy -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install NullPrivate/NullPrivate nullprivate-deploy --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NullPrivate/NullPrivate.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/nullprivate-deploy .gemini/skills/nullprivate-deploy && 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 "nullprivate-deploy" agent skill from https://github.com/NullPrivate/NullPrivate/tree/master/.github/skills/nullprivate-deploy into .gemini/skills/nullprivate-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nullprivate-deploy", 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 NullPrivate/NullPrivate nullprivate-deployInstalls 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 NullPrivate/NullPrivate --skill nullprivate-deploy -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/NullPrivate/NullPrivate.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/nullprivate-deploy .github/skills/nullprivate-deploy && 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 "nullprivate-deploy" agent skill from https://github.com/NullPrivate/NullPrivate/tree/master/.github/skills/nullprivate-deploy into .github/skills/nullprivate-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nullprivate-deploy", 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 NullPrivate/NullPrivate --skill nullprivate-deploy -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install NullPrivate/NullPrivate nullprivate-deploy --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NullPrivate/NullPrivate.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/nullprivate-deploy .opencode/skills/nullprivate-deploy && 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 "nullprivate-deploy" agent skill from https://github.com/NullPrivate/NullPrivate/tree/master/.github/skills/nullprivate-deploy into .opencode/skills/nullprivate-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nullprivate-deploy", 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.
nullprivate-deploy构建并发布 NullPrivate 镜像到阿里云容器镜像服务,更新 k3s 工作负载并完成 rollout、镜像 digest、Pod、Service、Gateway/Ingress、HTTPS 与 DNS/DoH 验收。Use when: 推送 dev 镜像、发布 NullPrivate、更新 public3 Pod、部署 adguardprivate、回滚 public3、检查…
Nullprivate Deploy is an agent skill from NullPrivate/NullPrivate. 构建并发布 NullPrivate 镜像到阿里云容器镜像服务,更新 k3s 工作负载并完成 rollout、镜像 digest、Pod、Service、Gateway/Ingress、HTTPS 与 DNS/DoH 验收。Use when: 推送 dev 镜像、发布 NullPrivate、更新 public3 Pod、部署 adguardprivate、回滚 public3、检查 NullPrivate 发布。
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Cloud networking and Deployment. It works with Linux. The repository describes itself as: Exploring the value that private DNS can bring us. The licence is GPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 92fb299. 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.
Shell commands in SKILL.md call:
kubectlmakedockergitgocurlFrom 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:
public3.adguardprivate.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nullprivate Deploy loads about 2k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 519 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 NullPrivate/NullPrivate at commit 92fb299, republished under its GPL-3.0 licence (© NullPrivate). 519 words, ~1,975 tokens.
.claude/skills/nullprivate-deploy/SKILL.md (or your agent's skills folder).为当前仓库执行可验证、可回滚的镜像发布。默认目标是:
NullPrivate 工作区。registry.cn-hangzhou.aliyuncs.com/adguardprivate/adguardprivate:<tag>。registry-vpc.cn-hangzhou.aliyuncs.com/adguardprivate/adguardprivate:<tag>。C:\Users\Administrator\.agents\skills\jqknono-k3s\references\k3s.yaml。adguardprivate。deployment/public3。F:\code\ecs-manager\k3s\resources\adguardprivate.com\service-traefik\public3.yaml。公网 registry 与 VPC registry 指向同一份阿里云镜像存储:本地只向公网地址 push,集群通过 VPC 地址 pull。
此 skill 面向当前固定 Windows 运维环境,保留上述绝对路径。执行前检查路径存在;路径失效时停止并报告,不自动搜索或复制 kubeconfig。默认直接覆盖可变的 :dev 标签,不额外创建备份标签。
dev、版本镜像或发布 NullPrivate。public3 Pod。ImagePullBackOff、rollout 超时、live digest 不一致。不要用于 null_private 后台的 adguardprivate_master 镜像;那是另一个仓库和工作负载。
VERBOSE=0 或 VERBOSE=1。禁止使用 VERBOSE=2,因为仓库脚本会输出整个环境。AdGuardHome.yaml、Secret、证书、PVC、Service、Gateway 或 Ingress,除非用户明确要求。git reset --hard、git checkout -- 等方式清理工作区;镜像应包含用户当前明确要求发布的未提交修改。imageID。:dev 前只记录旧 digest,不创建 dev-backup-* 或其他备份标签;最终报告必须说明这会限制镜像级回滚能力。public3 是单副本测试环境,更新期间可能短暂中断;不要同时更新其他 Deployment。读取仓库根目录 AGENTS.md 和 .vscode/tasks.json,确认当前约定没有变化。
运行已存在的聚焦测试和前端生产构建。涉及过滤模块和前端时,至少执行:
Set-Location 'F:\code\nullprivate\NullPrivate'
go test ./internal/filtering
make js-build VERBOSE=1查询集群,不做变更:
$kubeconfig = 'C:\Users\Administrator\.agents\skills\jqknono-k3s\references\k3s.yaml'
kubectl --kubeconfig $kubeconfig config current-context
kubectl --kubeconfig $kubeconfig get deployment,pod,service -n adguardprivate -l app=public3 -o wide从 live Deployment 读取容器名、镜像、imagePullPolicy、revision;从最新 Pod 记录旧 imageID。不要猜容器名或 registry。
检查 source of truth,确认镜像仍为 VPC 地址和目标 tag。若 live 与 YAML 不一致,先报告差异;需要改 YAML 时同步修改并验证,避免以后被覆盖。
用 docker buildx imagetools inspect 记录推送前远端 digest。
检查目标节点架构。默认 Quick dev 流程只构建 linux/amd64;若目标 Pod可能调度到 arm64,改用多架构发布,不能继续单架构镜像。
默认 dev/public3 快速发布走仓库 Quick 流程:
Set-Location 'F:\code\nullprivate\NullPrivate'
make js-build VERBOSE=1
make build-release VERBOSE=1 CHANNEL='development' ARCH='amd64' OS='linux' SIGN='0' FRONTEND_PREBUILT='1'必须确认:
dist\NullPrivate_linux_amd64\NullPrivate\NullPrivate 的修改时间是本次构建时间。build-release.sh 会在任何平台构建前统一检查 zip,即使 Linux amd64 最终只生成 .tar.gz。若仅因 pieces don't fit, 'zip' not found 失败,且 Quick Dockerfile 只需要 Linux 二进制,可以使用同一底层构建脚本生成精确产物:
Set-Location 'F:\code\nullprivate\NullPrivate'
New-Item -ItemType Directory -Force '.\dist\NullPrivate_linux_amd64\NullPrivate' | Out-Null
$env:GOOS = 'linux'
$env:GOARCH = 'amd64'
$env:GOARM = ''
$env:GOMIPS = ''
$env:CHANNEL = 'development'
$env:VERSION = 'v0.0.0'
$env:RACE = '0'
$env:NEXTAPI = '0'
$env:OUT = './dist/NullPrivate_linux_amd64/NullPrivate/NullPrivate'
$env:VERBOSE = '1'
& 'C:\Program Files\Git\bin\sh.exe' './scripts/make/go-build.sh'
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Get-Item $env:OUT | Select-Object FullName, Length, LastWriteTime只允许在以下条件同时满足时走该 fallback:
make js-build 已成功,仓库根目录 build/ 已更新。zip,不是 Go 编译、测试或前端构建错误。默认 dev/public3:
Set-Location 'F:\code\nullprivate\NullPrivate'
docker buildx build `
--platform linux/amd64 `
-f docker/Dockerfile.quick `
-t registry.cn-hangzhou.aliyuncs.com/adguardprivate/adguardprivate:dev `
. --push推送后执行:
docker buildx imagetools inspect registry.cn-hangzhou.aliyuncs.com/adguardprivate/adguardprivate:dev记录新的顶层 manifest digest。新 digest 必须与推送前不同;若相同,停止 rollout 并调查是否使用了旧产物或构建上下文。
版本发布时使用用户明确给出的 tag,不自动覆盖 latest。需要多架构时使用仓库完整发布流程或分别准备 amd64/arm64 产物,不能把单架构二进制标记为多架构镜像。
public3.yaml 使用 VPC 镜像和 imagePullPolicy: Always。当 tag 仍为 dev 时,使用 restart 生成新的 Pod template revision:
$kubeconfig = 'C:\Users\Administrator\.agents\skills\jqknono-k3s\references\k3s.yaml'
kubectl --kubeconfig $kubeconfig rollout restart deployment/public3 -n adguardprivate
kubectl --kubeconfig $kubeconfig rollout status deployment/public3 -n adguardprivate --timeout=5m若发布的是新 tag:
F:\code\ecs-manager\k3s\resources\adguardprivate.com\service-traefik\public3.yaml 的镜像 tag。不要只运行 kubectl set image 而不更新 YAML,否则后续 apply 会回退 live 配置。
只有以下检查都通过,才能报告“部署完成”:
Deployment revision 增加,availableReplicas 等于期望副本数。
只保留新 Pod;状态为 Running、Ready=true、重启次数无异常。
Pod imageID 的 digest 等于本次 push 的新 manifest digest。公网与 VPC registry 前缀不同是正常的。
service/public3 endpoints 非空,并指向新 Ready Pod。
Gateway/HTTPRoute 或当前入口资源处于可用状态。
新 Pod 日志显示 Web 与 DNS 服务启动完成;检查错误但不要回显敏感配置。
公网页面可访问:
Invoke-WebRequest -Uri 'https://public3.adguardprivate.com' -UseBasicParsing -MaximumRedirection 5期望最终到达登录页并返回 HTTP 200。
DoH 链路可用:
curl.exe --doh-url 'https://public3.adguardprivate.com/dns-query' `
--head --silent --show-error --max-time 20 `
--write-out "HTTP %{http_code}; remote_ip=%{remote_ip}`n" `
'https://example.com/'查询 CronJob、Job、initContainer 和 sidecar 是否引用同一镜像。若存在,必须同步或明确说明为什么不需要;当前 public3 通常没有活动 CronJob,但每次都要实查。
git diff --check 无空白错误;source of truth 与 live image tag 一致。
日志中已有但不阻断启动的 warning 需单独报告,例如上游 HTTP/3 超时后回落到 HTTP/2;不要把它误判成 rollout 失败。核心 DNS 查询失败、CrashLoop、空 endpoints 或 digest 不一致则不能宣称完成。
kubectl describe pod 读取真实拉取错误。imagePullSecrets 和 Deployment 引用。logs --previous、当前日志和 describe 事件。imagePullPolicy: Always。imageID,不要比较镜像 tag 字符串。默认回滚到上一 revision:
$kubeconfig = 'C:\Users\Administrator\.agents\skills\jqknono-k3s\references\k3s.yaml'
kubectl --kubeconfig $kubeconfig rollout undo deployment/public3 -n adguardprivate
kubectl --kubeconfig $kubeconfig rollout status deployment/public3 -n adguardprivate --timeout=5m回滚后重复 Pod、digest、endpoints、HTTPS 和 DoH 验收。注意:Deployment 历史若仍引用可变 :dev tag,rollout undo 可能再次拉取当前 dev digest,不能保证恢复旧镜像内容。当前默认不创建备份标签;需要可重复回滚时,应改为发布不可变版本 tag 或 digest,并在 source of truth 中记录。最终报告必须明确这个限制。
最终报告至少包含:
imageID。build-release 或缺少 zip 时的底层 fallback。dev tag 对回滚可靠性的限制。© NullPrivate, 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
Just SKILL.md in .github/skills/nullprivate-deploy of NullPrivate/NullPrivate.
Open the folder on GitHubat commit 92fb299
Nullprivate Deploy 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 |
|---|---|---|---|---|---|---|
| Nullprivate Deploy this skillNullPrivate/NullPrivate | 111 | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| Frappe Ops DeploymentImpertio-Studio/Frappe_Claude_Skill_Package | 187 | — | ~2.4k | Automated safety check: Notes | MIT | |
| Openbkn Deployopenbkn-ai/bkn-foundry | 629 | — | ~1.9k | Automated safety check: Notes | Custom licence | |
| Spa Create Configsplunk/splunk-platform-automator | 137 | — | ~3.5k | Automated safety check: Pass | Proprietary | |
| Aliyun Swas Managecinience/alicloud-skills | 397 | 1 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Minimegasandia-minimega/minimega | 160 | — | ~3.2k | Automated safety check: Pass | GPL-3.0-only |
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when deploying Frappe/ERPNext to production, configuring Nginx or Supervisor, setting up Docker, enabling SSL, or hardening security.
openbkn-ai/bkn-foundry
Deploy or upgrade OpenBKN on a customer-authorized Linux server through the repository's deploy scripts, with preflight checks, explicit confirmation, secret handling, and post-deployment…
splunk/splunk-platform-automator
A skill your agent uses when creating or updating splunkconfig.yml, designing Splunk Enterprise lab topology, multisite IDXC, SHC layout, architecture plan before config, or AWS Terraform block for…
cinience/alicloud-skills
A skill your agent uses when managing Alibaba Cloud Simple Application Server (SWAS OpenAPI 2020-06-01) resources end-to-end, including querying instances, starting/stopping/rebooting, executing…
sandia-minimega/minimega
This skill should be used when the user asks how to configure, run, automate, integrate, or troubleshoot minimega (VMs, namespaces, VLANs, clusters, miniccc, miniweb, command socket or Python API…
blotcms/blot
Work out why the blot-container-{blue,green,yellow} Docker containers from the most recent production deployment have restarted — distinguishing a normal deploy-triggered restart from a crash (V8…
Works with
Categories
构建并发布 NullPrivate 镜像到阿里云容器镜像服务,更新 k3s 工作负载并完成 rollout、镜像 digest、Pod、Service、Gateway/Ingress、HTTPS 与 DNS/DoH 验收。Use when: 推送 dev 镜像、发布 NullPrivate、更新 public3 Pod、部署 adguardprivate、回滚 public3、检查…. Nullprivate Deploy is an agent skill from NullPrivate/NullPrivate.
Nullprivate Deploy fits situations like: : 推送 dev 镜像、发布 NullPrivate、更新 public3 Pod、部署 adguardprivate、回滚 public3、检查 NullPrivate 发布; tasks that involve Cloud networking; tasks that involve Deployment.
Run `npx skills add NullPrivate/NullPrivate --skill nullprivate-deploy -a claude-code`. Or copy the skill folder (.github/skills/nullprivate-deploy in NullPrivate/NullPrivate) into .claude/skills/nullprivate-deploy in your project. Claude Code loads it when a task matches its description.
Run `npx skills add NullPrivate/NullPrivate --skill nullprivate-deploy -a codex`. Or copy the skill folder (.github/skills/nullprivate-deploy in NullPrivate/NullPrivate) into .agents/skills/nullprivate-deploy 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 NullPrivate/NullPrivate --skill nullprivate-deploy -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nullprivate-deploy, .gemini/skills/nullprivate-deploy, .github/skills/nullprivate-deploy and .opencode/skills/nullprivate-deploy in your project.
Going by SKILL.md and its folder, Nullprivate Deploy needs the command-line tools its instructions call (kubectl, make, docker, git, go and curl). Our summary lists: Docker.
SKILL.md names 1 domain. In commands or code: public3.adguardprivate.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.
Nullprivate Deploy 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 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Nullprivate Deploy: Frappe Ops Deployment (Impertio-Studio/Frappe_Claude_Skill_Package, 187 stars), Openbkn Deploy (openbkn-ai/bkn-foundry, 629 stars), Spa Create Config (splunk/splunk-platform-automator, 137 stars) and Aliyun Swas Manage (cinience/alicloud-skills, 397 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
NullPrivate (a GitHub organization) maintains it in NullPrivate/NullPrivate, which has 111 GitHub stars. The repository was last updated on August 25, 2026.
Source: NullPrivate/NullPrivate on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.