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/kaininx/plaintab/commit-changesnpx skills add kaininx/PlainTab --skill commit-changesgit clone --depth 1 https://github.com/kaininx/PlainTabWhat 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.00064 | $0.00966 |
| Opus 5 | $0.00032 | $0.00483 |
| Sonnet 5 | $0.00013 | $0.00193 |
| Haiku 4.5 | $0.00006 | $0.00097 |
Grade A, and why
commit-changes 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 — 59 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Commit PlainTab Changes
Use this skill to make clean PlainTab commits without mixing unrelated work.
Commit Style
- Use scoped Conventional Commits by default:
type(scope): 精准描述. - Allowed types include
feat,fix,perf,refactor,chore,docs,test,style, and other Conventional Commit types only when they accurately describe the change. - Always include a scope when a clear module or area exists, for example
fix(wallpaper): ...,refactor(storage): ...,docs(rules): ...,test(import-export): .... Omit scope only when the change is genuinely cross-cutting and no honest scope fits. - Prefer Chinese commit subjects and bodies when the user asks in Chinese.
- Match the current repository history. Before committing, inspect recent subjects with
git log --oneline -10and keep the same Chinese Conventional Commit rhythm unless the user asks for another style. - Make the subject long enough to be precise. It should name the changed behavior or module and the concrete result, not just the activity. Avoid vague subjects such as
fix(settings): 修复问题,docs(rules): 更新文档, orchore: 调整代码. - Prefer
type(scope): 动词 + 具体对象/行为 + 结果/目的, for examplefix(wallpaper): 补齐用户数据备份中的 IndexedDB Blob 恢复顺序. - The body is required for non-trivial commits. Use it to explain what changed, why it changed, how it was verified, and any storage/migration/UI risk boundary. Keep it factual and specific; do not pad with generic release-note language.
- Write multiple body bullets when needed. A good body usually has 3-6 bullets covering:
- the concrete code paths or modules changed;
- the user-visible behavior or data-safety effect;
- migration/import-export/i18n implications when relevant;
- verification commands or focused manual checks that passed;
- intentionally preserved limitations or excluded files.
Example:
fix(settings): 统一数据备份口令可见性并补齐导入按钮状态
- 将加密导出和 .ptab 导入口令收口到同一套显示/隐藏状态逻辑,只保留图标按钮。
- 选择 JSON 备份时保持导入口令禁用,选择 .ptab 后再启用口令输入和可见性切换。
- 复用现有口令 i18n 标签,避免新增无可见文案的显示/隐藏翻译 key。
- 验证通过 node --check js/settings-panel.js 和数据导入控件回归脚本。
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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 · 59 lines · 64 tokens per session scan A 9d6c62c8ba16
commit-changes is a skill published in the GitHub repository kaininx/PlainTab (88 stars, last pushed 3mo ago), licensed MIT. It adds 64 tokens to every session and 966 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-30.
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…