README.md

  1<!--
  2SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
  3
  4SPDX-License-Identifier: CC0-1.0
  5-->
  6
  7# agent-skills
  8
  9A collection of [Agent Skills]; structured markdown that extends LLM
 10agent capabilities through a standardised format.
 11
 12[Agent Skills]: https://agentskills.io/
 13
 14## Available Skills
 15
 16Refer to [Β§ Token stats](#token-stats) for a detailed breakdown of each skill's
 17token count, plus overall metadata usage. I've used and tested them most with
 18[Crush], [Amp], and [Shelley], and to a lesser degree, [Octofriend] and [Pi].
 19
 20[Crush]: https://github.com/charmbracelet/crush
 21[Amp]: https://ampcode.com
 22[Shelley]: https://github.com/boldsoftware/shelley
 23[Octofriend]: https://github.com/synthetic-lab/octofriend
 24[Pi]: https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent
 25
 26- [addressing-code-review-comments](skills/addressing-code-review-comments/SKILL.md):
 27  Finds `CR:` comments in code, gathers feedback, and carries out requested
 28  changes.
 29- [ast-grep](skills/ast-grep/SKILL.md): Writes [ast-grep] rules for structural
 30  code search and modification.
 31- [auditing-repositories](skills/auditing-repositories/SKILL.md): Audits open
 32  source repositories for security, privacy, and unexpected behavior.
 33- [authoring-skills](skills/authoring-skills/SKILL.md): Creates and reviews
 34  Agent Skills following best practices. Covers skill structure, frontmatter,
 35  and progressive disclosure patterns.
 36- [backing-up-with-keld](skills/backing-up-with-keld/SKILL.md): Writes and
 37  manages keld configuration for restic backups. Covers TOML preset structure,
 38  split preset composition (`home@cloud`), config file discovery, environment
 39  variables, and systemd timer setup.
 40- [collaborating-through-pr-pico-sh](skills/collaborating-through-pr-pico-sh/SKILL.md):
 41  Collaborates on git patches via [pr.pico.sh], a minimal patchbin service.
 42  Covers both contributing and reviewing patch requests using `git format-patch`
 43  and `git am`.
 44- [computing-golden-ratio-typography](skills/computing-golden-ratio-typography/SKILL.md):
 45  Computes Golden Ratio Typography line heights, spacing units, type scales, and
 46  readable measures from a font file or explicit font metrics.
 47- [cooking](skills/cooking/SKILL.md): Guides home cooking as a technically
 48  grounded collaborator. Helps plan meals, use odds and ends, troubleshoot
 49  techniques, handle substitutions, and reason through cuisine-specific flavor
 50  logic without flattening regional traditions.
 51- [creating-tasks-through-lunatask](skills/creating-tasks-through-lunatask/SKILL.md):
 52  Creates tasks and handoffs in [Lunatask] via [lune]. Tasks are just tasks.
 53  Handoffs capture work to resume later across sessions without filling context
 54  windows.
 55- [fallback-code-review](skills/fallback-code-review/SKILL.md): Provides a
 56  fallback-only external review flow via CLI tools like Amp, CodeRabbit, or
 57  Kodus.
 58- [formatting-commits](skills/formatting-commits/SKILL.md): Detects a project's
 59  commit style from recent history and formats messages accordingly. Supports
 60  Conventional Commits and kernel-style imperative commits.
 61- [frontend-accessibility](skills/frontend-accessibility/SKILL.md): Strives to
 62  generate accessible HTML, React, and frontend code following WCAG 2.2 AA.
 63  Prioritizes semantic HTML over ARIA, keyboard navigation, and screen reader
 64  compatibility.
 65- [handling-customer-data](skills/handling-customer-data/SKILL.md): Queries
 66  customer data responsiblyβ€”the agent answers questions about the data without
 67  ever seeing it directly.
 68- [humanize](skills/humanize/SKILL.md): Removes AI-generated patterns from
 69  text like promotional fluff, weasel words, and mechanical sentence structures.
 70  Based on Wikipedia's AI Cleanup research. Originally from [blader/humanizer].
 71- [ideating-with-bdd](skills/ideating-with-bdd/SKILL.md): Guides collaborative
 72  discovery of behaviour through structured conversation, iterating with the user
 73  to refine ideas into user stories and Gherkin scenarios. Works for any
 74  language or framework.
 75- [initialising-and-updating-agents-md](skills/initialising-and-updating-agents-md/SKILL.md):
 76  Analyses a codebase and creates or updates `AGENTS.md` to help future agents
 77  work effectively. Discovers commands, conventions, patterns, and gotchas from
 78  the project's source and config files.
 79- [invoking-subagents](skills/invoking-subagents/SKILL.md): Spawns subagents
 80  with restricted tool access for parallel tasks across repositories. Requires
 81  [the Pi coding agent][Pi]. Useful for summarizing git history or processing
 82  large diffs without filling the main context window.
 83- [licensing-with-reuse](skills/licensing-with-reuse/SKILL.md): Manages
 84  REUSE-compliant licensing with the `reuse` CLI. Covers `reuse annotate`,
 85  `.license` sidecars for prompt files, custom `LicenseRef-...` identifiers,
 86  `LICENSES/`, project conventions, and `reuse lint`.
 87- [maintaining-aur-packages](skills/maintaining-aur-packages/SKILL.md): Creates
 88  and updates AUR packages following Arch packaging standards. Covers PKGBUILDs
 89  for source, `-bin`, and `-git` package types, checksums with `updpkgsums`,
 90  linting with `namcap`, and `.SRCINFO` generation.
 91- [monitoring-with-munin](skills/monitoring-with-munin/SKILL.md): Deploys and
 92  manages Munin monitoring across servers. Sets up munin-node on hosts, writes
 93  plugins, configures masters, and handles alerts.
 94- [notifying-through-ntfy](skills/notifying-through-ntfy/SKILL.md): Sends push
 95  notifications via [ntfy.sh] when requested, such as at the end of its turn.
 96- [rebasing-with-git](skills/rebasing-with-git/SKILL.md): Manages git rebase
 97  workflows from simple rebases to the drop-and-repick integration branch
 98  pattern. Assumes `upstream` remote for forks and `rerere` enabled. Supports
 99  worktrees including `wt`-managed repos.
100- [researching-with-rumilo](skills/researching-with-rumilo/SKILL.md): Dispatches
101  AI research subagents via [rumilo] for web search and repository exploration.
102  Research topics, look up library usage, or explore external codebases without
103  filling the main context window.
104- [scripting-with-go](skills/scripting-with-go/SKILL.md): Creates executable Go
105  scripts using a shell trick (not a true shebang). For automation and tooling
106  outside of Go projects.
107- [testing-with-gocuke-and-gherkin](skills/testing-with-gocuke-and-gherkin/SKILL.md):
108  Drives BDD, red/green TDD, and property-based testing in Go projects using
109  [gocuke] and Gherkin feature files.
110- [toki-pona-dictionary](skills/toki-pona-dictionary/SKILL.md): Searches the
111  [nimi.li] toki pona dictionary by English meaning. Caches word data locally
112  after a one-time fetch, then runs offline searches across definitions and
113  community usage tags.
114- [updating-llm-client-model-lists](skills/updating-llm-client-model-lists/SKILL.md):
115  Synchronizes model configurations across Zed, Crush, Octofriend, and Pi from
116  Plexus' /v1/models endpoint.
117- [using-exe-dev](skills/using-exe-dev/SKILL.md): Guides working with [exe.dev]
118  VMs, which provide Linux VMs with persistent disks, instant HTTPS, and
119  built-in auth via SSH.
120- [using-jujutsu](skills/using-jujutsu/SKILL.md): Guides [jujutsu] (jj)
121  workflows, covering commit selection, change creation, diff reading, and
122  common pitfalls that trip up agents.
123- [working-with-zmx](skills/working-with-zmx/SKILL.md): Manages persistent
124  terminal sessions for background processes, dev servers, and long-running tasks.
125  Creates sessions, runs commands detached, checks output, and writes files into
126  sessions over SSH.
127- [writing-git-tags](skills/writing-git-tags/SKILL.md): Generates git tag
128  annotations from commit history following Semantic Versioning and Conventional
129  Commits via [git-format].
130- [writing-rust](skills/writing-rust/SKILL.md): Writes idiomatic Rust with
131  strict quality gates: `cargo fmt`, `clippy -- -D warnings`, and required
132  tests. Enforces `thiserror` for libs, `anyhow` for apps, warns against common
133  anti-patterns.
134
135[blader/humanizer]: https://github.com/blader/humanizer
136[ast-grep]: https://github.com/ast-grep/ast-grep
137[git-format]: https://git.secluded.site/git-format
138[gocuke]: https://github.com/tenntenn/gocuke
139[lune]: https://git.secluded.site/lune
140[Lunatask]: https://lunatask.app/
141[nimi.li]: https://nimi.li
142[ntfy.sh]: https://ntfy.sh
143[rumilo]: https://git.secluded.site/rumilo
144[synu]: https://git.secluded.site/synu
145[wt]: https://git.secluded.site/wt
146[exe.dev]: https://exe.dev
147[jujutsu]: https://jj-vcs.github.io/jj/latest/
148
149## Installation
150
151If you're using [Amp], run `amp skill add
152https://git.secluded.site/agent-skills`. Otherwise, clone the repository, then
153install via `make` or manual symlinks.
154
155[Amp]: https://ampcode.com
156
157```sh
158git clone https://git.secluded.site/agent-skills
159cd agent-skills
160```
161
162### With Make
163
164Skills install to `~/.config/agents/skills/` by default. Override by
165setting `SKILL_DIR`. Tab completion works so you don't have to remember
166skill names or copy/paste.
167
168```sh
169# List available skills
170make list
171
172# Install all skills to default dir
173make all
174
175# Install specific skills to Claude Code
176SKILL_DIR=$HOME/.claude/skills make authoring-skills formatting-commits
177
178# Remove a specific skill from Amp
179make uninstall-authoring-skills SKILL_DIR=$HOME/.config/agents/skills
180
181# Remove all skills from Codex
182make uninstall SKILL_DIR=$HOME/.codex/skills
183```
184
185### With symlinks
186
187```sh
188# Install all skills
189for s in skills/*/; do ln -s "$PWD/$s" ~/.config/agents/skills/; done
190
191# Install specific skills
192ln -s "$PWD/skills/authoring-skills" ~/.config/agents/skills/
193
194# Remove a skill
195rm ~/.config/agents/skills/formatting-commits
196```
197
198### Agent skill directories
199
200| Agent                                   | Dir                        |
201| --------------------------------------- | -------------------------- |
202| [Crush], [Octofriend], [Shelley], [Amp] | `~/.config/agents/skills/` |
203| [Pi]                                    | `~/.pi/agent/skills/`      |
204| Anthropic's Claude Code                 | `~/.claude/skills/`        |
205| OpenAI's Codex                          | `~/.codex/skills/`         |
206
207## Updating
208
209```sh
210cd ~/path/to/agent-skills
211git pull
212```
213
214Symlinked skills update automatically.
215
216## Contributions
217
218Patch requests are in [amolith/llm-projects] on [pr.pico.sh]. You don't need a
219new account to contribute, you don't need to fork this repo, you don't need to
220fiddle with `git send-email`, you don't need to faff with your email client to
221get `git request-pull` working...
222
223You just need:
224
225- Git
226- SSH
227- An SSH key
228
229```sh
230# Clone this repo, make your changes, and commit them
231# Create a new patch request with
232git format-patch origin/main --stdout | ssh pr.pico.sh pr create amolith/llm-projects
233# After potential feedback, submit a revision to an existing patch request with
234git format-patch origin/main --stdout | ssh pr.pico.sh pr add {prID}
235# List patch requests
236ssh pr.pico.sh pr ls amolith/llm-projects
237```
238
239See "How do Patch Requests work?" on [pr.pico.sh]'s home page for a more
240complete example workflow.
241
242[amolith/llm-projects]: https://pr.pico.sh/r/amolith/llm-projects
243[pr.pico.sh]: https://pr.pico.sh
244
245## Token stats
246
247Real token stats as reported by [Synthetic.new]'s [/messages/count_tokens]
248endpoint with [./skill-stats.go](./skill-stats.go).
249
250[Synthetic.new]: https://synthetic.new
251[/messages/count_tokens]: https://dev.synthetic.new/docs/anthropic/messages/count-tokens
252
253```
254=== addressing-code-review-comments ===
255
256Token breakdown:
257  Name:            9 tokens
258  Description:    40 tokens
259  Body:          290 tokens (38 lines)
260  ───────────────────────────────────────────────
261  Total:         339 tokens
262
263=== ast-grep ===
264
265Token breakdown:
266  Name:            7 tokens
267  Description:    76 tokens
268  Body:         2765 tokens (469 lines)
269  References:
270    rule_reference.md                         2515 tokens
271  ───────────────────────────────────────────────
272  Total:        5363 tokens
273
274=== auditing-repositories ===
275
276Token breakdown:
277  Name:            8 tokens
278  Description:    51 tokens
279  Body:         1046 tokens (156 lines)
280  References:
281    llm-security.md                            427 tokens
282  ───────────────────────────────────────────────
283  Total:        1532 tokens
284
285=== authoring-skills ===
286
287Token breakdown:
288  Name:            8 tokens
289  Description:    32 tokens
290  Body:          861 tokens (107 lines)
291  References:
292    checklist.md                               301 tokens
293    patterns.md                                880 tokens
294    process.md                                 311 tokens
295    specification.md                          1441 tokens
296  ───────────────────────────────────────────────
297  Total:        3834 tokens
298
299=== backing-up-with-keld ===
300
301Token breakdown:
302  Name:            9 tokens
303  Description:    39 tokens
304  Body:         1742 tokens (235 lines)
305  References:
306    config-examples.md                        1415 tokens
307    installation.md                             19 tokens
308  ───────────────────────────────────────────────
309  Total:        3224 tokens
310
311=== collaborating-through-pr-pico-sh ===
312
313Token breakdown:
314  Name:           12 tokens
315  Description:    47 tokens
316  Body:          521 tokens (43 lines)
317  References:
318    contributing.md                            162 tokens
319    jujutsu.md                                 516 tokens
320    reviewing.md                               406 tokens
321  ───────────────────────────────────────────────
322  Total:        1664 tokens
323
324=== cooking ===
325
326Token breakdown:
327  Name:            6 tokens
328  Description:   157 tokens
329  Body:         2805 tokens (117 lines)
330  References:
331    cuisines/_index.md                        1274 tokens
332    cuisines/caribbean/dish-boundaries.md      232 tokens
333    cuisines/caribbean/overview.md             730 tokens
334    cuisines/caribbean/pantry-techniques.md    399 tokens
335    cuisines/caribbean/regions.md              450 tokens
336    cuisines/chinese-regional/overview.md     1140 tokens
337    cuisines/chinese-regional/regions.md       500 tokens
338    cuisines/chinese-regional/substitutions.md   225 tokens
339    cuisines/chinese-regional/techniques-pantry.md   278 tokens
340    cuisines/german.md                         642 tokens
341    cuisines/hawaiian.md                       931 tokens
342    cuisines/indian/overview.md                873 tokens
343    cuisines/indian/pantry-substitutions.md    267 tokens
344    cuisines/indian/regions-communities.md     524 tokens
345    cuisines/indian/techniques.md              243 tokens
346    cuisines/irish-british.md                  641 tokens
347    cuisines/japanese-home.md                  673 tokens
348    cuisines/korean.md                         761 tokens
349    cuisines/levantine.md                      659 tokens
350    cuisines/mexican-regional/overview.md      761 tokens
351    cuisines/mexican-regional/pantry-substitutions.md   288 tokens
352    cuisines/mexican-regional/regions.md       402 tokens
353    cuisines/mexican-regional/techniques.md    237 tokens
354    cuisines/north-african-middle-eastern/egypt.md   146 tokens
355    cuisines/north-african-middle-eastern/gulf.md   149 tokens
356    cuisines/north-african-middle-eastern/maghreb.md   218 tokens
357    cuisines/north-african-middle-eastern/overview.md   820 tokens
358    cuisines/north-african-middle-eastern/pantry-techniques.md   266 tokens
359    cuisines/north-african-middle-eastern/persian.md   159 tokens
360    cuisines/sichuan/flavor-profiles.md        301 tokens
361    cuisines/sichuan/overview.md               774 tokens
362    cuisines/sichuan/pantry.md                 225 tokens
363    cuisines/sichuan/pivots-history.md         151 tokens
364    cuisines/sichuan/techniques.md             195 tokens
365    example-conversations.md                  1873 tokens
366    foundations.md                            1335 tokens
367    introductions.md                           532 tokens
368    searching-sources.md                       693 tokens
369    substitutions-and-pivots.md               1086 tokens
370    techniques.md                             2584 tokens
371  ───────────────────────────────────────────────
372  Total:       27605 tokens
373
374=== creating-tasks-through-lunatask ===
375
376Token breakdown:
377  Name:           12 tokens
378  Description:    41 tokens
379  Body:          741 tokens (88 lines)
380  References:
381    cli.md                                     218 tokens
382    handoff.md                                1035 tokens
383    installing-lune.md                          65 tokens
384  ───────────────────────────────────────────────
385  Total:        2112 tokens
386
387=== fallback-code-review ===
388
389Token breakdown:
390  Name:            7 tokens
391  Description:    79 tokens
392  Body:          489 tokens (56 lines)
393  ───────────────────────────────────────────────
394  Total:         575 tokens
395
396=== formatting-commits ===
397
398Token breakdown:
399  Name:            8 tokens
400  Description:    57 tokens
401  Body:          310 tokens (34 lines)
402  References:
403    conventional-commits.md                    362 tokens
404    installing-git-format.md                    22 tokens
405    kernel-style.md                            526 tokens
406  ───────────────────────────────────────────────
407  Total:        1285 tokens
408
409=== frontend-accessibility ===
410
411Token breakdown:
412  Name:            7 tokens
413  Description:    52 tokens
414  Body:         1091 tokens (172 lines)
415  References:
416    antipatterns.md                           1341 tokens
417    patterns.md                               2279 tokens
418  ───────────────────────────────────────────────
419  Total:        4770 tokens
420
421=== handling-customer-data ===
422
423Token breakdown:
424  Name:            9 tokens
425  Description:    46 tokens
426  Body:          715 tokens (115 lines)
427  ───────────────────────────────────────────────
428  Total:         770 tokens
429
430=== humanize ===
431
432Token breakdown:
433  Name:            6 tokens
434  Description:   100 tokens
435  Body:         1886 tokens (152 lines)
436  References:
437    DETAILED_PATTERNS.md                      1903 tokens
438    REPLACEMENTS.md                           1125 tokens
439  ───────────────────────────────────────────────
440  Total:        5020 tokens
441
442=== ideating-with-bdd ===
443
444Token breakdown:
445  Name:            9 tokens
446  Description:   133 tokens
447  Body:         1582 tokens (177 lines)
448  References:
449    gherkin-reference.md                       984 tokens
450  ───────────────────────────────────────────────
451  Total:        2708 tokens
452
453=== initialising-and-updating-agents-md ===
454
455Token breakdown:
456  Name:           12 tokens
457  Description:    59 tokens
458  Body:          850 tokens (63 lines)
459  ───────────────────────────────────────────────
460  Total:         921 tokens
461
462=== invoking-subagents ===
463
464Token breakdown:
465  Name:            8 tokens
466  Description:    42 tokens
467  Body:          450 tokens (20 lines)
468  ───────────────────────────────────────────────
469  Total:         500 tokens
470
471=== licensing-with-reuse ===
472
473Token breakdown:
474  Name:            9 tokens
475  Description:    51 tokens
476  Body:         1282 tokens (142 lines)
477  ───────────────────────────────────────────────
478  Total:        1342 tokens
479
480=== maintaining-aur-packages ===
481
482Token breakdown:
483  Name:            9 tokens
484  Description:    58 tokens
485  Body:         1481 tokens (105 lines)
486  References:
487    build-patterns.md                         1120 tokens
488  ───────────────────────────────────────────────
489  Total:        2668 tokens
490
491=== monitoring-with-munin ===
492
493Token breakdown:
494  Name:           10 tokens
495  Description:    62 tokens
496  Body:         1981 tokens (238 lines)
497  References:
498    writing-plugins.md                        1151 tokens
499  ───────────────────────────────────────────────
500  Total:        3204 tokens
501
502=== notifying-through-ntfy ===
503
504Token breakdown:
505  Name:           10 tokens
506  Description:    37 tokens
507  Body:         1052 tokens (89 lines)
508  References:
509    ht.md                                      383 tokens
510    httpie.md                                  385 tokens
511    nodejs.md                                  541 tokens
512    python.md                                  517 tokens
513    wget.md                                    430 tokens
514  ───────────────────────────────────────────────
515  Total:        3355 tokens
516
517=== rebasing-with-git ===
518
519Token breakdown:
520  Name:            8 tokens
521  Description:    71 tokens
522  Body:         2317 tokens (239 lines)
523  ───────────────────────────────────────────────
524  Total:        2396 tokens
525
526=== researching-with-rumilo ===
527
528Token breakdown:
529  Name:           10 tokens
530  Description:    60 tokens
531  Body:         1217 tokens (112 lines)
532  ───────────────────────────────────────────────
533  Total:        1287 tokens
534
535=== scripting-with-go ===
536
537Token breakdown:
538  Name:            8 tokens
539  Description:    46 tokens
540  Body:          727 tokens (141 lines)
541  ───────────────────────────────────────────────
542  Total:         781 tokens
543
544=== testing-with-gocuke-and-gherkin ===
545
546Token breakdown:
547  Name:           14 tokens
548  Description:    77 tokens
549  Body:          633 tokens (67 lines)
550  References:
551    bdd-practices.md                           261 tokens
552    gocuke-api.md                             1427 tokens
553  ───────────────────────────────────────────────
554  Total:        2412 tokens
555
556=== toki-pona-dictionary ===
557
558Token breakdown:
559  Name:           11 tokens
560  Description:    86 tokens
561  Body:          250 tokens (24 lines)
562  ───────────────────────────────────────────────
563  Total:         347 tokens
564
565=== updating-llm-client-model-lists ===
566
567Token breakdown:
568  Name:           13 tokens
569  Description:    50 tokens
570  Body:         1205 tokens (134 lines)
571  ───────────────────────────────────────────────
572  Total:        1268 tokens
573
574=== using-exe-dev ===
575
576Token breakdown:
577  Name:            8 tokens
578  Description:    32 tokens
579  Body:          380 tokens (45 lines)
580  ───────────────────────────────────────────────
581  Total:         420 tokens
582
583=== using-jujutsu ===
584
585Token breakdown:
586  Name:            9 tokens
587  Description:    55 tokens
588  Body:          735 tokens (92 lines)
589  ───────────────────────────────────────────────
590  Total:         799 tokens
591
592=== working-with-zmx ===
593
594Token breakdown:
595  Name:            8 tokens
596  Description:    58 tokens
597  Body:          522 tokens (69 lines)
598  ───────────────────────────────────────────────
599  Total:         588 tokens
600
601=== writing-git-tags ===
602
603Token breakdown:
604  Name:            7 tokens
605  Description:    38 tokens
606  Body:          846 tokens (109 lines)
607  References:
608    installing-git-format.md                    22 tokens
609  ───────────────────────────────────────────────
610  Total:         913 tokens
611
612=== writing-rust ===
613
614Token breakdown:
615  Name:            7 tokens
616  Description:    45 tokens
617  Body:         1324 tokens (139 lines)
618  References:
619    idioms.md                                 1708 tokens
620  ───────────────────────────────────────────────
621  Total:        3084 tokens
622
623============================================================
624SUMMARY
625============================================================
626
627Skills: 32
628Metadata: 2265 tokens
629Combined bodies: 35092 tokens
630Overall: 94780 tokens
631Validation errors: 0
632
633Largest skills (by total tokens):
634  1. cooking                                  27605 tokens
635  2. amoliths-go-opinions                      7694 tokens
636  3. ast-grep                                  5363 tokens
637  4. humanize                                  5020 tokens
638  5. frontend-accessibility                    4770 tokens
639```
640
641---
642
643Some other tools if these interested you
644
645- [wt](https://git.secluded.site/wt) - CLI for managing git worktrees
646- [git-format](https://git.secluded.site/git-format) - CLI that turns LLM input
647  into well-formatted conventional commits and tags
648- [garble](https://git.secluded.site/garble) - transform stdin with an LLM (fix
649  typos, translate, reformat)
650- [lune](https://git.secluded.site/lune) - CLI and MCP server for
651  [Lunatask.app](https://lunatask.app)