upstream-audit SKILL.md skillA
upstream-audit from kihara777/nixkits is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add kihara777/nixkits/upstream-audit@git:20261024.8b180c4Pins git:20261024.8b180c4 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- kihara777/nixkits
- Path
skills/upstream-audit/SKILL.md- Versions recorded
- 4
- Latest version
- git:20261024.8b180c4, committed Oct 24, 2026
- First version recorded
- Oct 20, 2026
- Size
- 50,233 bytes
- Repository stars
- 28
- License
- MIT
审计一个自建软件包能否安全地提交到上游 nixpkgs——**只读,到 dry-run 为止**。做四件事:先分流(首次贡献 vs 再次贡献 × 全新添加 vs 版本更新)、再评估可行性(是否已在 master、有无在途 PR、许可依据能否在**那个 tag 里**指认、维护意愿、依赖冲突)、再审计当前要求(by-name 结构、nixpkgs-vet 的 12 条检查与 3 条棘轮、meta 必填项、nixfmt、commit 前缀驱动 CI、名单 handle 必须匹配 commit 作者)、最后对着**一棵真的 nixpkgs 树**做 dry-run(构建成功不算数,要跑产物;并逐行通读要提交的那份 diff)。**本技能不执行任何写操作**:不 push、不建 PR、不以你的名义评论或回复——它产出「可提交/不可提交 + 证据」,提交动作属于另一层。.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 上游贡献审计(到 dry-run 为止) **本技能的边界**:它**只读**。不 `git push`、不 `gh pr create`、不以任何人的名义评论或回复。 它回答的是「**这个包能不能提交,证据是什么**」,而不是替谁提交。 需要真正提交时,那些动作属于**带授权与账号约束的那一层**(本机是本机的一份私有预设 (不随本仓库分发)),不在这里。 **顺序不能换**:评估 → 审计 → dry-run。跳步的代价见陷阱清单。 --- ## 第 0 步:先同步,再采信 **任何「现在的 nixpkgs 是什么样」的结论,都要现取。** ```bash gh api repos/NixOS/nixpkgs/commits --jq '.[0].sha' # 取 HEAD,写进你的报告 ``` > 走过的坑:本地那份 nixpkgs 快照的 `CONTRIBUTING.md` 里**没有** AI 政策一节, > 而 upstream master 里**有**。凭快照下结论就会漏掉整条最关键的硬要求。 > **文档结构会漂移**——`doc/contributing/` 目录现在已不存在, > 只剩一个跳转存根 `doc/contributing.md`。路径必须实测,不能凭记忆。 同时把基线写进报告:**哪一刻、哪个 commit**。这决定了你的结论什么时候过期。 --- ## 第 0.5 步:先确定走哪条路(四条,别走错) **这一步放在评估之前** —— 因为你走的路决定了**后面哪几节根本不用读**, 也决定**这次要不要动 `maintainer-list.nix`**。 两个正交的轴: | | **全新添加(init)** | **版本更新(update)** | |---|---|---| | **首次贡献**<br>(名单里还没有你) | ① 两个 commit:<br>`maintainers: add <handle>`<br>`<包名>: init at <版本>`<br>走全部评估与审计 | ② 一个 commit:<br>`<包名>: <旧> -> <新>`<br>**除非你想顺便加入名单,否则不动它** | | **再次贡献**<br>(名单里已有你) | ③ **一个** commit:<br>`<包名>: init at <版本>`<br>名单**不要再动** | ④ **一个** commit:<br>`<包名>: <旧> -> <新>`<br>最短路径 | ### 关键:维护者条目是**一次性**的 **名单是「你是谁」的登记,不是「这次做了什么」的记录。** 一旦 `maintainers: add <handle>` 被合并,**以后每次贡献都不再碰这个文件** —— …
Read the whole file at its exact version.
How to install
mdr add kihara777/nixkits/upstream-audit@sha256:d3b9cf244a0c6443The line at the top of this page pins the label git:20261024.8b180c4, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_rqlmxmddm2x35uut)
2 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 4 versions of this file, between Oct 20, 2026 and Oct 24, 2026, about one every day.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261024.8b180c4 latest | 2026-10-24 | 8b180c4 | 50,233 B | A | view · diff |
| git:20261023.bf5949f | 2026-10-23 | bf5949f | 49,603 B | A | view · diff |
| git:20261020.6a81cc6 | 2026-10-20 | 6a81cc6 | 46,539 B | A | view · diff |
| git:20261020.25be250 | 2026-10-20 | 25be250 | 46,528 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (50233 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
kihara777/nixkits · 28 stars · license MIT · pushed 2026-11-06 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_rqlmxmddm2x35uut GET https://markdownregistry.com/api/v1/resolve?ref=kihara777/nixkits/upstream-audit GET https://markdownregistry.com/api/v1/blob/d3b9cf244a0c6443b0c273850e20f2010f100215488b44c190567f83a91d043d
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.