Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/voidtechnology/voidtech-claude-plugins/setup-git-checksnpx skills add VoidTechnology/voidtech-claude-plugins --skill setup-git-checksgit clone --depth 1 https://github.com/VoidTechnology/voidtech-claude-pluginsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00069 | $0.01229 |
| Opus 5 | $0.00034 | $0.00615 |
| Sonnet 5 | $0.00014 | $0.00246 |
| Haiku 4.5 | $0.00007 | $0.00123 |
Grade A, and why
setup-git-checks scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Vendored from mattpocock/skills · MIT © 2026 Matt Pocock · upstream 6eeb81b · 已汉化并完成 VoidTech 插件内自包含适配。LICENSE 见 ../_vendor-licenses/mattpocock-LICENSE
配置预提交钩子
本技能会配置什么
- Husky 预提交钩子
- lint-staged 对所有暂存文件运行 Prettier
- Prettier 配置(如缺失)
- 预提交钩子中的 typecheck 与 test 脚本
步骤
1. 检测包管理器
先确认仓库根目录存在 package.json;不存在就停止,并说明本技能只适用于 Node.js 项目,不要擅自引入 Node 工具链。
优先读取 package.json 的 packageManager 字段;否则检查 package-lock.json(npm)、pnpm-lock.yaml(pnpm)、yarn.lock(yarn)、bun.lock 或 bun.lockb(bun)。多个信号冲突时询问用户,只有完全没有信号时才默认 npm。
2. 安装依赖
若依赖尚未存在,使用选定的包管理器安装 husky、lint-staged 与 prettier。沿用 lockfile 解析出的版本,不安装全局命令:
| 包管理器 | 安装 | 执行本地二进制 | 运行脚本 |
|---|---|---|---|
| npm | npm install --save-dev husky lint-staged prettier |
npx --no-install |
npm run |
| pnpm | pnpm add --save-dev husky lint-staged prettier |
pnpm exec |
pnpm run |
| yarn | yarn add --dev husky lint-staged prettier |
yarn exec |
yarn |
| bun | bun add --dev husky lint-staged prettier |
bunx --bun |
bun run |
3. 初始化 Husky
使用上表的“执行本地二进制”命令运行 husky init。例如 npm 项目使用:
npx --no-install husky init
这会创建 .husky/ 目录,并将 prepare: "husky" 添加到 package.json。若仓库已有 Husky 配置,先读取并在原结构上修改,不要重复初始化。
4. 创建 .husky/pre-commit
在这个文件中加入以下三类命令(Husky v9+ 无需 shebang),把占位符替换为上表对应命令:
<local-exec> lint-staged
<run-script> typecheck
<run-script> test
如果仓库已有 .husky/pre-commit,保留原有检查并合并缺失命令,不得覆盖。若 package.json 没有 typecheck 或 test 脚本,省略相应行并告知用户;不要凭空创建无法工作的脚本。
5. 配置 lint-staged
若项目已有任何 lint-staged 配置,保留其格式和规则,只确认它能覆盖需要格式化的文件。只有完全缺失时才创建 .lintstagedrc:
{
"*": "prettier --ignore-unknown --write"
}
6. 创建 .prettierrc(如缺失)
仅在没有任何 Prettier 配置时创建。已有配置保持不变。使用以下默认值:
{
"useTabs": false,
"tabWidth": 2,
"printWidth": 80,
"singleQuote": false,
"trailingComma": "es5",
"semi": true,
"arrowParens": "always"
}
7. 验证
-
.husky/pre-commit存在且可执行 -
.lintstagedrc存在 - package.json 中的
prepare脚本为"husky" -
prettier配置存在 - 使用选定包管理器执行本地
lint-staged,验证配置可以加载 - 手动运行
.husky/pre-commit,确认存在的 typecheck 与 test 脚本通过
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 104 lines · 69 tokens per session scan A 6eff764e84f2
setup-git-checks is a skill published in the GitHub repository VoidTechnology/voidtech-claude-plugins (2 stars, last pushed 28d ago), licensed Apache-2.0. It adds 69 tokens to every session and 1,229 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
babysit-pr
Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…